淘宝反爬求解

2019-01-17 11:53:16 +08:00
 frogex
爬虫新人,主要要爬淘宝一些搜索结果和商品的销量。
参考的帖子非常多:
https://intoli.com/blog/making-chrome-headless-undetectable/
https://antoinevastel.com/bot%20detection/2018/01/17/detect-chrome-headless-v2.html

目前已经做的事情:
1.mitmdump 挂脚本,拦截 js ( sufei_data/3.6.8/index.js )替换其中一些检测,比如知名的 f.webdriver,$cdc_asdjflasutopfhvcZLmcfl_
2.mitmdump 在页面 load 时设置了 navigator.language(注意,不是 languages,淘宝的 index.js 检测的没有复数),navigator.webdriver,window.chrome,window.navigator.permissions.query 属性
3.分析了 index.js ,测试了可能鉴定爬虫的特征代码( L = [r, i, a, e, l],B = [m, h, v, d, g];),这几个函数返回值 headless 和非 headless 下都是一致的

结果:
非 headless 下自动登陆大概率(90%)能通过,headless 下似乎一次都过不了。所以这下就郁闷了,不明白究竟是哪里遗漏了呢? headless 和非 headless 还有什么特征不同吗?
14461 次点击
所在节点    Python
72 条回复
dengtongcai
2019-01-18 10:37:21 +08:00
我已经把 淘宝芝麻分,订单明细,售后地址爬了
frogex
2019-01-18 11:32:06 +08:00
@soulmine
我也知道,公司安全的负责人也说,你一个人怎么能应付一个团队,不要硬肛,要想别的办法,但什么大淘客还是不行啊,搜不到我要的。 但这爬东西又是公司必须的任务,之前从来没搞过,忧虑了好久,总没彻底去解决。

淘宝也有付费 api,不过 leader 还是希望能神不知鬼不觉的用爬虫比较好
frogex
2019-01-18 11:34:41 +08:00
@yinaqu
淘宝检测了什么我不确定是不是只在 sufei_data 那个 js 里,从我分析看,至少有检测了 10 个函数,至少 headless 都 pass 了和非 headless 一样的结果。其他的实在看不下去了,都是混淆过的代码,命名 abcdefg,函数各种混着赋值,似乎要人肉维护一个函数调用关系
frogex
2019-01-18 11:35:34 +08:00
@dengtongcai
爬简单,要能稳定长期、全自动化、有效的爬才难啊
winglight2016
2019-01-18 11:45:50 +08:00
我在 mac 上的 chrome,纯手动打开都会反复要求登录,天猫的商品实际价格也出不来,不知道是啥情况?
beforeuwait
2019-01-18 11:57:01 +08:00
阿里的反爬太厉害了
yanzixuan
2019-01-18 12:22:27 +08:00
阿里的反爬,我特么正常使用也经常不行啊。动不动就要验证。。。
ctro15547
2019-01-18 13:01:16 +08:00
机子支持开几个 android 虚拟机?
dengtongcai
2019-01-18 13:10:52 +08:00
@frogex 扫码登录不能做吗,我就是扫码
NonClockworkChen
2019-01-18 13:23:38 +08:00
要爬淘宝,我内心是拒绝的
frogex
2019-01-18 16:21:03 +08:00
@dengtongcai
请看全文,不仅是登陆,是要长期稳定的爬,且能过各种滑块,目前最终方案在 23F, 放 win 虚拟机跑了
IWSR
2019-01-18 17:40:33 +08:00
你们就没考虑过淘宝写反爬的也在 V2EX 里面看这贴吗
frogex
2019-01-19 10:50:03 +08:00
@IWSR
那能怎么办?讨论爬虫的帖子超级多,可讨论反爬的实在太少了,工作这么久身边也基本没一个人做过这些的
xiao38245
2019-01-19 11:56:50 +08:00
我之前爬过手机端淘宝, m.taobao.com 加密的参数只有一个, 我记得是 md5 加密来着, 还算简单, 知乎有帖子
iamdaguduizhang
2019-01-19 15:21:49 +08:00
iamdaguduizhang
2019-01-19 15:23:08 +08:00
现在这个也不能爬了,
frogex
2019-01-19 15:46:52 +08:00
@xiao38245
手机淘宝是二进制的协议吧,要破协议,这个我没经验。而且直接抓接口的方法淘宝随便封更容易,感觉还是模拟人的操作稍微靠谱点
wc110302
2019-01-21 18:59:34 +08:00
修改 chromedriver 源码以及 mitmdump 挂脚本,拦截 js 的方法我都使用过,noheadless 确实都能大概率过,但是 headless 就一次过不了,也就说只能在 windows 上跑了,暂时也没想到什么好的方法能挂在 liunx 上。先 mark 一下
keyakizaka46
2019-01-21 20:15:57 +08:00
@frogex 最近接了一个爬取天猫的任务,也是被各种反爬搞的焦头烂额。我可以有酬买你的源码吗?
yinaqu
2019-01-22 18:04:40 +08:00
@wc110302 linux 不是也有图形界面吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/527879

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX