当前位置:   article > 正文

Selenium反反爬

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. option = ChromeOptions()
  4. # 打开参数
  5. # option.add_argument("--proxy-server=http://127.0.0.1:8888")
  6. # driver = Chrome(options=option)
  7. driver = Chrome()
  8. driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  9. "source": """
  10. Object.defineProperty(navigator, 'webdriver', {
  11. get: () => undefined
  12. })
  13. """
  14. })
  15. driver.implicitly_wait(10)
  16. driver.get("http://www.google.com")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/89963
推荐阅读
相关标签
  

闽ICP备14008679号