如何使用Selenium和Python为用户代理设置自定义名称

如何使用Selenium和Python为用户代理设置自定义名称,python,selenium,selenium-webdriver,webdriver,user-agent,Python,Selenium,Selenium Webdriver,Webdriver,User Agent,我正在使用selenium+webdriver并尝试测试不同的用户代理。我正在为Windows上的Chrome添加这样的用户代理,例如: option = Options() option.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36") 现

我正在使用selenium+webdriver并尝试测试不同的用户代理。我正在为Windows上的Chrome添加这样的用户代理,例如:

option = Options()
option.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36")
现在,当我登录查看登录详细信息时,它会显示Windows Chrome,但当我想将其重命名为其他类似内容时:

option.add_argument("user-agent=test-user-agent")

一些网站将其显示为
未知
浏览器不受支持

有没有办法“重命名”用户代理或创建自定义的用户代理,或者网站只知道预设数量的用户代理?

用户代理 是一个特征字符串,允许服务器和网络对等方识别请求的应用程序、操作系统、供应商和/或版本


语法 web浏览器的通用格式如下所示:

User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>
  • 控制台输出:

    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
    
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
    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: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>
    
    • 代码块:

      from selenium import webdriver
      
      options = webdriver.ChromeOptions()
      options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36")
      driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
      print(driver.execute_script("return navigator.userAgent;"))
      
      from selenium import webdriver
      
      options = webdriver.ChromeOptions()
      options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36")
      driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
      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;"))
      
    • 控制台输出:

      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
      
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
      

    工具书类 您可以在以下内容中找到一些相关的详细讨论:


    下面是一个可以使用的大量用户代理字符串列表: