如何使用Selenium和Python更改用户代理

如何使用Selenium和Python更改用户代理,python,selenium,selenium-webdriver,webdriver,user-agent,Python,Selenium,Selenium Webdriver,Webdriver,User Agent,使用selenium在Python中更改web驱动程序用户代理时出错 这是我的密码: import requests import json from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities driver = webdriver.Chrome(driver_path) driver.execute_cdp_cmd('Networ

使用selenium在Python中更改web驱动程序用户代理时出错

这是我的密码:

import requests
import json
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
driver = webdriver.Chrome(driver_path) 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'})
#Error is on line above
这是我的错误:

>>> driver = webdriver.Chrome(driver_path) driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent":"python 3.7", "platform":"Windows"}) File "<stdin>", line 1 driver = webdriver.Chrome(driver_path) driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent":"python 3.7", "platform":"Windows"})``` >>>driver=webdriver.Chrome(driver\u path)driver.execute\cdp\u cmd('Network.setUserAgentOverride',{“userAgent”:“python3.7”,“平台”:“Windows”}) 文件“”,第1行 driver=webdriver.Chrome(driver\u path)driver.execute\cdp\u cmd('Network.setUserAgentOverride',{“userAgent”:“python3.7”,“平台”:“Windows”})```
您应该使用驱动程序选项:

from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("user-agent=[user-agent string]")

driver = webdriver.Chrome(executable_path='path', chrome_options=options)

您的代码非常完美。您只需编写一行代码即可更改下一行中的。例如:

  • 代码块:

    from selenium import webdriver
    
    driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe')
    print(driver.execute_script("return navigator.userAgent;"))
    # Setting user agent 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;"))
    # Setting user agent as Chrome/83.0.4103.53
    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.53 Safari/537.36'})
    print(driver.execute_script("return navigator.userAgent;"))
    driver.get('https://www.httpbin.org/headers')
    
  • 控制台输出:

    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
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36
    
  • 浏览器快照:


参考文献 您可以在以下内容中找到一些相关的详细讨论:


按照以下步骤操作:

1-您可以在每次使用请求中使用生成假用户代理库

添加到代码:

from fake\u useragent导入useragent

2-然后在终端中执行以下操作:

 pip install fake_useragent
3-在代码中使用:例如

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'user-agent={userAgent}')
ua = UserAgent()
userAgent = ua.random
print(userAgent)
driver = webdriver.Chrome(options=chrome_options,executable_path=r"strin path 
chrome driver")
                 
如果您想从静态用户代理使用以下代码:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--user-agent="Mozilla/5.0 (Windows NT 6.1; 
WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"')
driver = webdriver.Chrome(chrome_options=chrome_options)
              

这个语法正确吗?```从selenium.webdriver.chrome.options导入options=options()options.add_参数(“用户代理=”Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)chrome/83.0.4103.97 Safari/537.36')``也,我会在实际的用户代理周围保留单引号,还是在整个事件周围保留双引号,这很好?不需要使用单引号。只需在整个过程中保留双引号。
driver=webdriver.Chrome(executable\u path=r'C:\Users\Salvatore\Desktop\Desktop\webdrivers\chromedriver.exe')
这是可行的,但我遇到了这个错误,我的浏览器立即关闭:
selenium.common.exceptions.SessionNotCreatedException:Message:session not created:ChromeDriver的这个版本只支持Chrome版本81
@Salvatoretinpani,这是一个不同的错误,需要不同的解决方案。你能就你的新要求提出一个新问题吗?这是我的新帖子: