如何使用通过 webdriver_manager 安装的 Chrome 驱动程序更改 Google Chrome UserAgent

How to change the Google Chrome UserAgent using the ChromeDriver installed through webdriver_manager

我最近遇到一个问题,我无法在 selenium 中更改我的用户代理。我解决了这个问题,但随后遇到 chrome 驱动程序问题,它需要 chrome 驱动程序版本 81。我解决了这个问题,但不知道如何将用户代理解决方案实施到 chrome 特定于驱动程序的代码。|

代码如下:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

之前,这是我更改用户代理的方式:

from selenium import webdriver

# Below is where my code would give me the chrome driver error. So I used the solution above for that.
driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'})

用户代理

User-Agent request header is a characteristic string that lets servers and network peers identify the application, operating system, vendor, and/or version of the requesting user agent.


语法

网络浏览器的常用格式如下:

User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>

webdriver_manager.chrome

webdriver_manager.chrome is the 模块帮助用户下载和部署 WebDriver 二进制文件。该模块中的 类 可用于自动搜索和下载最新版本(或特定版本)的 WebDriver 二进制文件,然后将其解压并通过复制或符号链接将其放置到 Selenium 或其他软件所在的位置工具应该可以找到它。


总结

综上所述,从以上几点可以得出:

  • 通过请求头实现,与原生浏览器打交道
  • is a Python module to deal with downloading and installing 个二进制文件。

因此,它们没有相互关联,可以按如下方式组合实施:

  • 代码块:

    from selenium import webdriver
    from webdriver_manager.chrome import ChromeDriverManager
    
    driver = webdriver.Chrome(ChromeDriverManager().install())
    driver.get('https://duckduckgo.com/')
    print(driver.execute_script("return navigator.userAgent;"))
    # Setting UserAgent as Chrome/83.0.4103.97
    driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'})
    print(driver.execute_script("return navigator.userAgent;"))
    

参考资料

您可以在以下位置找到一些相关的详细讨论: