在最近的业务需求中发现淘宝,美团,京东各大网站已经对selenium进行了反爬;
推测,服务器端因该是判断一些特殊的字段和方法来识别爬虫,毕竟selenium下的chromedriver 与真实的chrome所在的环境和配置等是有差异的。
为了完成项目需求,我尝试了一些简单的方法;
方法一:
发送请求的时候携带cookie,采用requests的Session状态保持,事实证明这种方法简单有效,可以成功访问。但是这是用于采集的数据量比较少的情况下。如果你想要快速采集,那就使用aiohttp吧!
方法二:
如果js可以破解的话,那就破解它了!
实战案例:
方法三:
mitmproxy请求拦截
- 给本机设置代理ip
- 启动mitmproxy
- 打开chromewebdriver,查看各个JS文件,是否存在driver字样,找到最终的JS文件
- 干扰脚本
- 退出mitmproxy
方法四:
使用pyppeteer无头浏览器的一种。实战案列pyppeteer实战案例