我最近遇到了一个问题,我无法在硒中更改我的用户代理。我得到了修复,但随后遇到了一个 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:WebDriverschromedriver.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
User-Agent 请求标头是一个特征字符串,允许服务器和网络对等方标识请求用户代理的应用程序、操作系统、供应商和/或版本。
>语法Web 浏览器的常见格式如下:
User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>
<小时 />webdriver_manager.铬
webdriver_manager.chrome是python模块,可帮助用户下载和部署WebDriver二进制文件。此模块中的类可用于自动搜索和下载 WebDriver 二进制文件的最新版本(或特定版本(,然后通过将其复制或符号链接到 Selenium 或其他工具应该能够找到它的位置来提取它并放置它。
<小时 />总结
综上所述,从以上几点可以推断出:
- User-Agent通过请求标头实现,并与本机浏览器打交道。
- Webdriver-manager是一个Python模块,用于处理下载和安装WebDriver二进制文件。
因此,它们不是相互关联的,可以按如下方式组合实现:
代码块:
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;"))
参考资料
您可以在以下位置找到一些相关的详细讨论:
- 如何在Selenium中更改Google Chrome用户代理?
- 如何使用Selenium和Python更改用户代理
- 如何在每个请求上使用Selenium python轮换各种用户代理