selenium 反反爬-淘宝,美团
1. 反爬
有时候,我们利用 Selenium 自动化爬取某些网站时,极有可能会遭遇反爬。
实际上,我们使用默认的方式初始化 WebDriver 打开一个网站,下面这段 JS 代码永远为 true,而手动打开目标网站的话,则为:undefined
# 通过这段 JS 脚本区分是爬虫还是人工操作 window.navigator.webdriver
2.解决方法 cdp 命令
cdp 全称是:Chrome Devtools-Protocol
通过 addScriptToEvaluateOnNewDocument() 方法可以在页面还未加载之前,运行一段脚本。
如此,我们只需要提前设置:
window.navigator.webdriver 的值为 undefined 即可。
1 from selenium.webdriver import Chrome 2 from selenium.webdriver import ChromeOptions 3 4 option = ChromeOptions() 5 6 # 打开参数 7 # option.add_argument("--proxy-server=http://127.0.0.1:8888") 8 # driver = Chrome(options=option) 9 10 driver = Chrome() 11 driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { 12 "source": """ 13 Object.defineProperty(navigator, 'webdriver', { 14 get: () => undefined 15 }) 16 """ 17 }) 18 19 driver.implicitly_wait(10) 20 driver.get("http://www.google.com")
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/riwanba/article/details/131801315
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
2017-08-09 [转]python的find()方法