xutaocs 发表于 2019-12-13 11:10

python爬取淘宝商品信息

本帖最后由 xutaocs 于 2019-12-13 11:29 编辑

python使用requests库爬取淘宝食品信息,包含sign参数破解。1.网站分析参考资料:JS断点调试 https://blog.csdn.net/qq_39009348/article/details/81563831打开淘宝页面搜索"美食"共有一百页数据,一页100条数据
右键——检查 或者 按F12 在 NetWork 中的一大坨里找到自己想要的东西(看response里有没有自己想要的数据,想看主页面里有没有,再到XHR里看看是不是Ajiax传得,最后到JS里翻)https://img-blog.csdnimg.cn/20190309213234786.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70这个URL就是我们的目标了request URL 中发现有一堆参数,那么看看下面都传了些啥参数https://img-blog.csdnimg.cn/20190309214307144.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70翻翻页发现很多值是固定不变的,一定会变或者可能会变的有下面这些值https://img-blog.csdnimg.cn/20190309214810178.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70经过观察和一些尝试(这里就不细说了)t 和 sign 的值是每次都会变的,keyword则是自己搜索的字段,page则是页数,最后面那个wangwangid则是你当前登陆的用户名(随cookies变化)经过我的测试,根据上面的参数构造请求可以获取到数据,但是 t 和 sign 的值每次都会变,不可能我每翻一页都要自己改参数,所以只能去找这两个参数是怎么来的了,嗯 t 明显是时间戳(t = int(time.tiam()*1000)), 主要是 sign 的值经过一番努力,我找到了这个参数怎么构造的https://img-blog.csdnimg.cn/20190309222718643.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70发现 sign 是将几个参数用"&"连接后再有MD5加密所得,然后使用js断点调试看看这几个参数都是什么意思,上面有js断点的文献,不明白的可以参考一下。https://img-blog.csdnimg.cn/20190309224244490.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70j = h(d.token + “&” + i + “&” + g + “&” + c.data)
sign: j1. d.token
https://img-blog.csdnimg.cn/20190309224802821.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70

发现这个 token 与 cookies 里的 token 有点像,去看看,发现


https://img-blog.csdnimg.cn/20190309224818209.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70

就是这个了,这里要注意 这个 token 的大概每隔一个小时就会改变一次2. i
https://img-blog.csdnimg.cn/20190309225034827.png
这个 i 的值和之前 t 的值一样 ,int(就是 time.time()*1000)3. g
https://img-blog.csdnimg.cn/20190309225200777.png
不难发现 g 就是之前请求里的一个固定值 appKey : 125744784. c.data
https://img-blog.csdnimg.cn/20190309225537794.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70

就是之前请求的参数里的 data
所有 sign = md5(d.token + “&” + i + “&” + g + “&” + c.data) 这种形式


最后贴下结果
https://img-blog.csdnimg.cn/20190309231514766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExNTM3ODc4NTM3NQ==,size_16,color_FFFFFF,t_70

代码在我csdn博客上有,可以参考一下:https://blog.csdn.net/a15378785375/article/details/88371970

a526146545 发表于 2021-11-11 15:13

https://market.m.taobao.com/app/mtb/personal-homepage/pages/index/index.html?disableNav=YES&userId=Kn%2FDMWHmrodRjX9gfhr8Cw%3D%3D&keyName=kc_lightspeed&source=guang_share&contentId=335622629724&spm=a21afv.20839971 我发现采集这个也跟你这个类似,sign这个值每页的也是不同的需要怎么获取这个sign啊

lotusdance 发表于 2019-12-13 11:20

大神,请问一下,有没有能爬商家信息的工具啊,特别烦那种看了评论买回来的东西,结果发现评论全是好评反现刷出来的店家。

icafe 发表于 2019-12-13 11:14

6666好多工具都可以爬。。。

cw131420 发表于 2019-12-13 11:28

wapj110 发表于 2019-12-13 14:05

感谢分享

ycrobin 发表于 2019-12-13 14:06

技术贴来得?有点牛哦

yinwawa 发表于 2019-12-13 15:54

感谢分享,学习一下

xqwluo 发表于 2019-12-14 06:30

zebraboy 发表于 2019-12-14 10:55

这个是好东西,可以学习学习。

expressvue 发表于 2019-12-14 12:27

大佬牛逼
页: [1] 2
查看完整版本: python爬取淘宝商品信息