- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有没有办法让你的 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”来检查它是否未定义。
关于python - 如何通过 Python 使用 GeckoDriver 和 Firefox 使 Selenium 脚本无法检测到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60534531/
我创建了一个测试脚本,使用 python 在 Eclipse 中打开一个 url,但出现以下错误: Traceback (most recent call last): File "/Librar
我有一些 Robot Framework使用 SeleniumLibrary 的测试套件.我使用 Firefox 和 geckodriver 运行这些测试。每当我运行测试套件时,都会创建一个 geck
在我的应用程序中,我无法使用 System.setProperty 设置 geckodriver 可执行位置,并且无法在路径中设置它。为什么?因为我的应用程序是 Multi-Tenancy 的....
我列出了系统中安装的当前 npm 版本以及尝试安装 geckodriver 时发生的错误。我阅读了 [npm 模块版本] - [geckodriver 版本]1.10.x - geckodriver
我对 Pycharm 或 Python 的了解不够深,无法解决问题所在。在我看来,似乎应该执行这段简单的代码,但我得到了一堆对我来说没有任何意义的文本。 使用 Selenium 的其他人会遇到此错误并
当我尝试执行我的第一个 Selenium/python 代码时出现此错误。 selenium.common.exceptions.WebDriverException: Message: 'Gecko
我正在使用 headless ubuntu,并想安装最新的 geckodriver。 所以我必须通过输入命令行来安装。 我的 ubuntu 是 14.04 值得信赖的。 但是,我不知道安装 gecko
我正在做一个简单的机器人,用于使用 selenium 在 java/swing 中自动执行用户任务。 Selenium 需要在客户端计算机上安装 geckodriver。我应该如何交付该驱动程序? 放
驱动程序:geckodriver 0.19.1。 操作系统名称:Microsoft Windows 10 Pro for Workstations 版本:10.0.17134 Build 17134。
我已阅读之前关于此主题的问题并尝试遵循建议,但我仍然遇到错误。在终端上,我跑了 export PATH=$PATH:/Users/Conger/Documents/geckodriver-0.8.0-
我正在尝试在 Python 中使用 Selenium。但是,鉴于 https://pypi.python.org/pypi/selenium 的以下内容,我不知道该怎么做 Selenium 需要驱动程
我在 Windows 10 上运行 Selenium 3.141.0 和 python 3.6.7 我的脚本以 headless 方式运行 Firefox 驱动程序,但是来自 geckodriver
新的 geckodriver v0.17.0 有一种新的方式来安装插件,如上所述 here : POST /session/{session id}/window/fullscreen to invo
每次创建另一个测试时都需要添加 geckodriver 吗?例如: public class JUnit4 { @Test public void test1() {
我需要使用扩展来测试 Firefox。我想自动化测试并访问几个网站。 我安装了 Selenium,它在 geckodriver 中打开.但是,扩展不存在。我可以从 about:debugging 手动
我想以机器人方式填写网络表单。我在文档中添加了libraryclient-combined 3.0.0 beta 3。我的firefox版本应该是最新的。 import org.openqa.
我试图在我的 raspberry pi 3 in java 上使用 geckodriver设置 selenium webdriver。当我尝试启动 FirefoxDriver() 的实例时,我收到以下
我正在使用 Selenium/Maven/testng 编写自动测试。 测试在 Windows Server 2016 Standard 虚拟机上执行。 我想检查任务列表是否正在运行 geckodri
我有一个 webelement cells[-1] 我正在尝试单击并在新选项卡中打开它,然后从该页面上的链接下载一些内容,然后将其关闭并返回到原始状态选项卡。 我用过 actions.key_down
Selenium 设计为在处理 webdriver 实例时终止 Geckodriver 进程,如下所示:driver.quit()。在我的测试框架中,我已配置为在每次测试后调用 driver.quit
我是一名优秀的程序员,十分优秀!