selenium爬虫被检测到 该如何破?
2019-08-18 22:43
2651 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Python1996/article/details/99709167
selenium爬虫被检测到 该如何破?
如何获取cookies?
使用的方法是通过 mitmproxy 蔽掉识别 webdriver 标识符的 js 文件。
首先下载mitproxy,pip安装方法: pip install mitmproxy基本使用方法:给本机设置代理ip 127.0.0.1端口8001(为了让所有流量走mitmproxy)具体方法请百度。
- 启动mitmproxy。windows:mitmdump -p 8001Linux:mitmproxy -p 8001
- 打开chrome的开发者工具,找到目标网站是通过哪个js文件控制webdriver相应的
我们发现,是yoda.xxx.js文件在控制webdriver的请求与响应。
4. 开始写干扰脚本(DriverPass.py):
import re from mitmproxy import ctx def response(flow): if '/js/yoda.' in flow.request.url: for webdriver_key in ['webdriver', '__driver_evaluate', '__webdriver_evaluate', '__selenium_evaluate', '__fxdriver_evaluate', '__driver_unwrapped', '__webdriver_unwrapped', '__selenium_unwrapped', '__fxdriver_unwrapped', '_Selenium_IDE_Recorder', '_selenium', 'calledSelenium', '_WEBDRIVER_ELEM_CACHE', 'ChromeDriverw', 'driver-evaluate', 'webdriver-evaluate', 'selenium-evaluate', 'webdriverCommand', 'webdriver-evaluate-response', '__webdriverFunc', '__webdriver_script_fn', '__$webdriverAsyncExecutor', '__lastWatirAlert', '__lastWatirConfirm', '__lastWatirPrompt', '$chrome_asyncScriptInfo', '$cdc_asdjflasutopfhvcZLmcfl_' ]: ctx.log.info('Remove "{}" from {}.'.format( webdriver_key, flow.request.url )) flow.response.text = flow.response.text.replace('"{}"'.format(webdriver_key), '"NO-SUCH-ATTR"') flow.response.text = flow.response.text.replace('t.webdriver', 'false') flow.response.text = flow.response.text.replace('ChromeDriver', '')
- 退出刚才的mitmproxy状态,重新用命令行启动mitmproxy干扰脚本 监听8001端口的请求与响应。mitmdump -s DriverPass.py -p 8001
- 现在别管mitmproxy,启动webdriver 顺利获得cookies。
相关文章推荐
- python爬虫如何绕过Selenium检测(¥54)
- Selenium语言如何使用亿牛云爬虫代理。
- [置顶] 【python 爬虫】selenium爬虫模块 phantomjs如何加代理IP
- selenium爬虫需要注意检测页面加载和内容加载进度
- Selenium入门(二)如何爬虫爬到京东的价格
- 如何在 Linux 下检测内存泄漏[转载自 Linux爱好者]
- 如何安全设定和检测你的密码安全性?
- 如何判断爬虫采集内容是否违法?
- Solaris中如何检测内核代码的内存泄漏
- VB编程时如何检测A驱有无磁盘或磁盘写保护?
- 如何在linux下检测内存泄漏
- 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS
- Selenium WebDriver如何使滚动条滚动到最元素位置
- 【华为云实战开发】14.如何使用Node爬虫利器Puppteer进行自动化测试
- 教你如何使用搜索引擎批量检测网站注入点
- [Python爬虫] 之十九:Selenium +phantomjs 利用 pyquery抓取超级TV网数据
- Python爬虫:Selenium+ BeautifulSoup 爬取JS渲染的动态内容(雪球网新闻)
- 如何检测或判断一个文件或字节流(无BOM)是什么编码类型
- 4000 【爬虫】 通过关键字爬取淘宝商品列表信息 selenium 的 webdriverwait 和expected_conditions