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

时间:2018-03-29 21:06:52

标签: python google-chrome selenium selenium-webdriver user-agent

我试图找出一种方法,每当我在这个特定的脚本中通过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/&#34)

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

2 个答案:

答案 0 :(得分:10)

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

wchar_t

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

  1. 首次执行:

    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()
    
  2. 第二次执行:

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

    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36
    

答案 1 :(得分:6)

您应该使用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)

这应该有用。