比如需要抓取这件商品的实时库存和价格: https://item.taobao.com/item.htm?spm=a1z0k.7628869.1997989141.7.h17BoG&id=528392541802&_u=b1upv8bl23c7
拓展下,可否抓取这件商品的实时库存? http://store.nike.com/de/de_de/pd/jordan-q54-lux-fischerhut/pid-11190884/pgid-11504256
实现方式用 python ?
http://zhan.renren.com/sunli90112?gid=3602888498064136996&from=post&checked=true
1
xiaocsl 2016-07-11 06:22:45 +08:00 2
挺简单的,说一下过程吧.希望你能学会"渔".
1) 打开你的给的商品后发现库存都是个位数,立刻就去随便搜索了一个库存数稍微大一些的商品.( https://item.taobao.com/item.htm?id=531414649886 ) 2)打开 Fiddler 发送请求.然后在 Ctrl + F 搜索了某个 SKU 的库存 "689" 符合条件的只有个位数请求,一眼望过去,有一个域名是:" detailskip.taobao.com " 点开发现包含所有库存信息.获取到请求地址 https://detailskip.taobao.com/service/getData/1/p2/item/detail/sib.htm?itemId=528392541802&modules=qrcode,viewer,price,contract,duty,xmpPromotion,dynStock,delivery,upp,sellerDetail,activity,fqg,zjys,coupon&callback=onSibRequestSuccess 3)将请求中的 itemId 的值换成需要获取的商品 ID ,直接浏览器请求,返回 403.确认服务器有验证,观察 Fiddler 中的请求,除了 "Referer" 并无其他信息 4)请求时增加个 "Referer" 正常工作.到这里就全部完成了. 额外提醒,这里并没有验证更多信息,比如说请求次数限制等问题,如果碰到可以尝试抓一下各个平台的接口测试. |
2
001155 2017-04-06 00:48:13 +08:00 1
2017 年 4 月 6 日 https://detailskip.taobao.com/service/getData/1/p2/item/detail/sib.htm?itemId=528392541802&modules=qrcode,viewer,price,contract,duty,xmpPromotion,dynStock,delivery,upp,sellerDetail,activity,fqg,zjys,coupon&callback=onSibRequestSuccess
请求这个接口一直 403 模拟请求的时候要在 header 设置一下来源页面 referer 属性为你要抓取的宝贝链接 ,就可以成功获取了 header={ "referer":"https://item.taobao.com/item.htm?id=524122865207" } |