如何在 Selenium 中更改 Google Chrome 用户代理?

2024-02-14

我正在尝试找出一种方法,每当我在这个特定的脚本中通过 Selenium (Python)打开 Chrome 时,Chrome 页面就会自动打开并选择另一个用户代理 - 在本例中为 Microsoft Edge Mobile(但我将从桌面访问它)。

因此,在做了一些研究之后,我已经能够拼凑出以下代码,我认为这些代码将在 Chrome 中执行用户代理切换,然后打开一个新的 Bing.com 页面:

from selenium import webdriver 
from selenium.webdriver.chrome.options

import Options opts = Options()
opts.add_argument("user-agent=Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 640 XL LTE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166")
driver = webdriver.Chrome(chrome_options=opts)
driver = webdriver.Chrome("D:\_")
driver.get("https://www.bing.com/")

但是,该代码似乎不起作用,并在打开指定网页之前停止。我相当确定代码的前半部分已关闭,但我不太确定如何关闭。任何和所有的帮助将不胜感激。


使用随机数的简单方法用户代理将使用Python的fake_useragent https://pypi.python.org/pypi/fake-useragent模块如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from fake_useragent import UserAgent

options = Options()
ua = UserAgent()
user_agent = ua.random
print(user_agent)

options.add_argument(f'--user-agent={user_agent}')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\ChromeDriver\chromedriver_win32\chromedriver.exe')
driver.get("https://www.google.co.in")
driver.quit()

连续执行3次结果如下:

  1. 第一次执行:

    Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36
    
  2. 第二次执行:

    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36
    
  3. 第三次执行:

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Selenium 中更改 Google Chrome 用户代理? 的相关文章

随机推荐

  • 用逗号格式化json文件?

    我有一个 json 文件 bla bla bla bla bla bla bla bla 如何将它们格式化为有效的 json 类型 例如 bla bla bla bla bla bla bla bla bla bla 每个后面插入逗号 除了
  • Python中如何查找引发异常的位置

    如何确定在哪个函数中引发了异常 例如存在两个函数 foo 和 bar 在 foo 中 异常将随机引发 import random def foo if random randint 1 10 2 raise Exception bar de
  • 在doctrine2中是否可以有一个不是主键的自动增量列?

    在doctrine2中 我有一个实体 它有一个从Web服务提供的主键 并且还有一个应该是自动增量的索引 我可以在mysql中手动设置 但无法在doctrine2中进行此设置 I used columnDefinition of INT AU
  • Windbg lm:“延迟”是什么意思?

    我正在 WinDbg 中调试 NET 2 0 程序集的故障转储文件 当我在 WinDbg 中输入 lm 时 我会得到一长串已加载的模块 如下所示 723c0000 72950000 mscorwks deferred 这里的 延期 是什么意
  • 接口和@RequestBody

    我目前正在开发一个项目 该项目允许用户 通过网络 预订在给定时间段内使用所选资源 在这个程序中 我试图遵循 Spring 的接口编程哲学 以及一般的最佳实践 因此我尝试在具体类中重复功能的任何地方使用接口 我创建的一个接口称为 Bookab
  • 当我从 Process.Start(url) 打开 url 时,c# Google chrome 在某些 PC 上崩溃

    在某些 PC 上 当我想显示网址时 Google Chrome 会崩溃 我用了Process Start url and UseShellExecute true 请注意 它在我尝试过的大多数电脑上都能正常工作 但在某些电脑上却不能 Chr
  • 使用 requirejs + uglify 限制行长度

    我们正在使用requirejs optimize config 在我们的构建脚本中使用 uglify2 来缩小我们的生产 JavaScript 代码 我们希望将缩小后的行长度限制为大约 80 个字符 这样即使在生产代码中也可以更轻松地调试
  • Angular 5 中 value 和 ngValue 的区别

    今天 我意识到 Angular 5 中的反应式表单出现了意外的 对我来说 行为 服务器从应用程序接收到一个值为 null 的字符串 而不是我想要的 null 值 我做了以下测试 https stackblitz com edit angul
  • 如何减少 androidx.compose.material3.OutlinedTextField 的高度

    我在降低高度时遇到困难OutlinedTextField在撰写中 我正在尝试在里面做一个搜索栏TopAppBar就像许多谷歌应用程序 Gmail Play Store 中所做的那样 我无法在材料3中实现这一点 我尝试复制OutlinedTe
  • Chrome扩展从内容脚本到后台html的sendMessage错误

    我刚刚将我的 chrome 扩展更新为 json 版本 2 并尝试让我的扩展再次工作 问题是 sendRequest 一路上被贬值了 所以我复制代码https developer chrome com extensions messagin
  • 确定 C 可执行文件名称

    当我们编译 C 程序时 输出存储在 a out 中 我们如何将编译后的输出重定向到另一个文件 大多数 C 编译器为此提供了一个选项 例如 o选项gcc和其他一些 gcc o gentext gentext c cc o mainprog L
  • 如何获取neo4j路径中的最后一个节点?

    在这个密码查询中 将返回与 STATUS on 属性有关系的节点之间的最长路径 但我还想获取路径的最后一个节点 query START n node MATCH p n rels INCLUDE gt m WHERE ALL rel IN
  • 具有负权重的 Dijkstra 算法

    我们可以使用具有负权重的 Dijkstra 算法吗 STOP 在你认为 哈哈 你可以在两点之间无休止地跳跃并获得一条无限便宜的路径 之前 我更倾向于考虑单向路径 其应用是具有点的山区地形 显然 从高到低并不需要能量 事实上 它会产生能量 因
  • Facebook 身份验证对话框:开发人员关于使用“显示”类型“弹出窗口”的警告

    从今天开始 我们在身份验证对话框中收到开发人员警告 其中包含以下消息 您在大型浏览器窗口或选项卡中使用 弹出窗口 显示类型 为了获得更好的用户体验 请使用我们的 JavaScript SDK 显示此对话框 而不指定显式显示类型 SDK 将为
  • Windows 上的 Data.ByteString.Lazy.Char8 换行符转换——文档是否具有误导性?

    我对字节串库中的 Data ByteString Lazy Char8 库有疑问 具体来说 我的问题涉及 readFile 函数 其记录如下 将整个文件延迟读取到 ByteString 中 在 Windows 上使用 文本模式 来解释换行符
  • 从动态元素获取动态Id

    我有带有动态 ID 的 div 元素 div div div div div div div div div div div div 所有元素id parent 除外 可由用户从输入字段进行编辑 因此 parent 的最后一个子级可能具有用
  • C. Break、Switch、If 中的愚蠢错误。 1990 年电话网络崩溃 [已关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我犹豫着要不要问这个问题 因为这看起
  • sed 创建重复行而不是替换现有行

    我有一个包含以下内容的文件 foo txt some text 0 我使用以下 sed 命令将 0 替换为 1 search text some text sed s search text 0 search text 1 i foo tx
  • 从我的网络服务缓存图像 url 的最佳方法?

    我已经实现了一个 ARC 格式的应用程序 但我想在库的缓存文件夹中缓存一些图像网址 任何想法 提前致谢 我希望它能帮助你 我用SDWeb图像 https github com rs SDWebImage与我的所有项目 using 添加您的视
  • 如何在 Selenium 中更改 Google Chrome 用户代理?

    我正在尝试找出一种方法 每当我在这个特定的脚本中通过 Selenium Python 打开 Chrome 时 Chrome 页面就会自动打开并选择另一个用户代理 在本例中为 Microsoft Edge Mobile 但我将从桌面访问它 因