当前位置: 首页 > 知识库问答 >
问题:

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

益和雅
2023-03-14

我正在使用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")
option.add_argument("user-agent=Mozilla/5.0 (test-user-agent NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36")

共有1个答案

龙洛城
2023-03-14

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

web浏览器的通用格式如下:

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;"))
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
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.97 Safari/537.36
  • 如何在Selenium中更改Google Chrome用户代理?
  • 如何使用Selenium和Python更改用户代理
  • 如何在每个请求上使用selenium python旋转各种用户代理
 类似资料:
  • 我将从描述我正在工作的架构体系开始。它包含多个代理服务器,这些服务器使用负载均衡器将用户身份验证转发到直接绑定到活动目录的适当代理。身份验证使用用于登录请求来自的计算机的凭据和源IP。服务器将IP和凭据缓存60分钟。我正在使用专门用于此过程的测试帐户,并且仅在单元测试服务器上使用。 我正在使用docker容器在远程服务器上实现selenium webdriver的自动化。我使用python作为脚本

  • 现在,我正在使用类似的方法来验证我的基本站点上的用户: 如何修改使用自定义列作为用户名的代码?https://laravel.com/docs/5.3/passport#password-grant-tokens

  • 我正试图通过PipelineOptions自定义用于不同GCP调用的用户代理。setUserAgent。 然而,它似乎总是回到。 看看Beam代码库,用户代理似乎是由数据流转轮强制的:https://github.com/apache/beam/blob/ce9ee0b034cef66ea3845ca049770b9a354a4fd4/runners/google-cloud-dataflow-j

  • 我有一个生成令牌的webapi,我已经在webapi的方法中编写了令牌生成逻辑。 我能够从webapi方法生成aad jwt令牌,但现在我想在令牌中包含一些自定义声明。 如何使用c#将自定义声明设置为aad令牌。 我使用下面的代码来生成aad令牌。 请共享任何示例c#代码,以将自定义声明设置为从上述代码生成的aad令牌。 注意:我想为aad令牌设置一个新的自定义声明,其中自定义声明值从外部逻辑获得

  • 问题内容: 这段代码在main方法内部。当我运行此代码时,将启动firefox,但不会遵循google url,并且代理未设置为我在上面的代码中指定的代理。我怎样才能解决这个问题? 问题答案: 由于存在错误,您目前无法使用Proxy对象。您应该使用以下代码 该错误已在https://github.com/mozilla/geckodriver/issues/764上讨论,您将在下面的链接中看到Ma