因为业务中发现网站对selenium特征识别为爬虫了,因此在搜索引擎中搜索进行处理

方式一

# 实例化一个浏览器对象
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
if sys.platform == "win32":
    browser = webdriver.Chrome(driver_path, options=options)
else:
    browser = webdriver.Chrome(options=options)
browser.implicitly_wait(30)
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})

此方法虽然可以躲避识别,但是在使用过一段时候后,依然出现被屏蔽的问题。

因此只有继续搜索 然后再stackoverflow 中又找到了新的答案。

方式二 (推荐)

# 实例化一个浏览器对象
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
if sys.platform == "win32":
    browser = webdriver.Chrome(driver_path, options=options)
else:
    browser = webdriver.Chrome(options=options)

这个方法执行的后,目前运行良好也没有出现被识别的问题。

关闭当前标签 在切换标签前关闭

driver.close()
windows = driver.window_handles
driver.switch_to.window(windows[-1])

相关文章:

  • 2021-11-21
  • 2021-11-01
  • 2021-10-02
  • 2021-11-18
  • 2021-11-05
  • 2021-06-21
  • 2021-07-30
  • 2021-11-16
猜你喜欢
  • 2021-07-11
  • 2021-11-28
  • 2021-12-03
  • 2021-07-07
  • 2021-12-15
  • 2021-10-23
  • 2021-11-18
相关资源
相似解决方案