Way to change Google Chrome user agent in Selenium?
我正在尝试找出一种方法,每当我通过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的
1 2 3 4 5 6 7 8 9 10 11 12 | 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() |
三次连续执行结果如下:
第一次执行:
1 | Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36 |
第二次执行:
1 | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36 |
第三次执行:
1 | 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 |
您应该使用Selenium.WebDriver中的chromeoptions:
1 2 3 4 5 | 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) |
这应该有效。