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

the*_*ula 8 python selenium user-agent google-chrome selenium-webdriver

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

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

来自selenium import webdriver

来自selenium.webdriver.chrome.options

导入选项opts =选项()

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,与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/ ")

但是,在打开指定的网页之前,代码似乎没有工作并停止.我很确定上半部分代码是关闭的,但我不太清楚如何.任何和所有的帮助将深表感谢.

Deb*_*anB 18

使用随机用户代理的一种简单方法是使用Python的fake_useragent模块,如下所示:

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

options = Options()
ua = UserAgent()
userAgent = ua.random
print(userAgent)
options.add_argument(f'user-agent={userAgent}')
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()
Run Code Online (Sandbox Code Playgroud)

连续3次执行的结果如下:

  1. 第一次执行:

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

    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

  • 当我访问 g2.com 的“查询”时,它对我不起作用,我总是得到验证码。 (2认同)
  • 有没有办法在不关闭网络驱动程序实例的情况下做到这一点? (2认同)
  • 在 2022 年仍然有效,只需在 CMD 上运行此命令(对于 CentOS 7):`pip install fake-useragent` for python 2.X or for python 3.X+ try `pip3 install fake-useragent` ,然后导入 `from fake_useragent import用户代理`. (2认同)

Tim*_*ker 7

您应该使用selenium.webdriver中的ChromeOptions:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.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=chrome_options)
Run Code Online (Sandbox Code Playgroud)

这应该工作。

  • “chrome_options”已弃用。请改用“选项”。 (3认同)
  • @theCrabNebula 您是否收到任何错误消息,如果有,它们是什么?我通常看到此问题与未正确引用 chromedriver 可执行文件的文件系统位置有关。 (2认同)
  • 你好,抱歉我的“菜鸟”问题,但是如果机器人继续使用相同的 IP 地址,那么更改 UserAgent 有什么意义呢?在这种情况下,更改 UserAgent 不会让 Selenium 机器人变得更加可疑并且更容易被网站阻止吗? (2认同)