有没有办法让你的 Selenium 脚本在 Python 中使用 geckodriver 无法被检测到?
我正在使用 Selenium 进行抓取。我们需要使用任何保护措施以使网站无法检测到 Selenium 吗?
请您参考如下方法:
有多种方法可以避免网站检测到 Selenium 的使用。
使用 Selenium 时,navigator.webdriver 的值默认设置为 true。该变量将出现在 Chrome 和 Firefox 中。该变量应设置为“未定义”以避免检测。
代理服务器也可用于避免检测。
某些网站能够使用您的浏览器状态来确定您是否正在使用 Selenium。您可以将 Selenium 设置为使用自定义浏览器配置文件来避免这种情况。
下面的代码使用了所有这三种方法。
profile = webdriver.FirefoxProfile('C:\\Users\\You\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\something.default-release')
PROXY_HOST = "12.12.12.123"
PROXY_PORT = "1234"
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", PROXY_HOST)
profile.set_preference("network.proxy.http_port", int(PROXY_PORT))
profile.set_preference("dom.webdriver.enabled", False)
profile.set_preference('useAutomationExtension', False)
profile.update_preferences()
desired = DesiredCapabilities.FIREFOX
driver = webdriver.Firefox(firefox_profile=profile, desired_capabilities=desired)
代码运行后,您将能够手动检查 Selenium 运行的浏览器现在是否具有您的 Firefox 历史记录和扩展。您还可以在 devtools 控制台中输入“navigator.webdriver”来检查它是否未定义。