爬取某淘宝店铺所有宝贝遇到的问题?
在爬一个淘宝店铺的信息时发现会通过jsonp去网站取回数据,url如下:
https://tianziyujushangcheng.taobao.com/i/asynSearch.htm?callback=jsonp152&mid=w-12133771151-0&wid=12133771151&pageNo=2
其他无效参数都被我除去了。
有2个必要参数:一个callback=jsonp152;另一个wid=12133771151.但是这2个参数是怎么得来的呢?
因为我是要爬取大量网站,所以手动从浏览器中提取这2个参数几乎不可能。
在chrome开发者工具中搜索,在其他位置并没有出现这几个参数。也看了发出这个xhr请求的index.js文件,并没有看到相关联的东西。有大神做过吗?分享一下...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过仔细分析终于找到了。本来以为淘宝为了限制爬虫,设置了一些算法加密这几个数字,其实没有。
首先,jsonp152中这个152是没有意义的,是一个跟发送请求时间有关的数值,但是对于我们来说并没有影响。你随便输入一个数字,比如callback=jsonp122返回的就是jsonp122("{data:...}"),发送请求时随意发就是了,它是一个随机数。
其次,12133771151是从发送"https://tianziyujushangcheng.taobao.com/search.htm"返回的页面中提取出来的。
大概过程就是,发送https://tianziyujushangcheng....然后浏览器解析返回页面中的一些js文件,再发送https://tianziyujushangcheng....这个请求,取回商品信息。所以直接爬取店铺首页是爬取不到具体的商品信息的,要分析整个网络请求,找到这个xhr请求,才能获取到想要的信息。