如何在 Python + Selenium 中创建随机用户代理?

Posted

技术标签:

【中文标题】如何在 Python + Selenium 中创建随机用户代理?【英文标题】:How do I create a random user agent in Python + Selenium? 【发布时间】:2018-07-05 09:57:28 【问题描述】:

如何在 Chrome 中创建随机 user_agent?我正在使用假用户代理。 Library here。打印的输出正常,但似乎没有加载到 Chrome 中。

我试过了:

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


options = Options()
options.add_argument("window-size=1400,600")
from fake_useragent import UserAgent
ua = UserAgent()
a = ua.random
user_agent = ua.random
print(user_agent)
options.add_argument(f'user-agent=user_agent')
driver = webdriver.Chrome()
driver.get('https://whoer.net/')

这不会每次都打印随机输出。

打印输出:

Mozilla/5.0(Macintosh;英特尔 Mac OS X 10_10_1)AppleWebKit/537.36 (Khtml,如 Gecko)Chrome/41.0.2227.1 Safari/537.36

根据whoer.net输出user_agent:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 像壁虎)Chrome/63.0.3239.132 Safari/537.36

【问题讨论】:

您在实例化驱动程序时是否使用了这些选项?看起来你不是。 【参考方案1】:

您还没有使用这些选项,这就是它不起作用的原因

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


options = Options()
options.add_argument("window-size=1400,600")
from fake_useragent import UserAgent
ua = UserAgent()
user_agent = ua.random
print(user_agent)
options.add_argument(f'user-agent=user_agent')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://whoer.net/')
driver.quit()

运行后,查看控制台和浏览器输出

【讨论】:

【参考方案2】:

伪造用户代理的简单方法是使用FirefoxProfile(),如下所示:

from selenium import webdriver
from fake_useragent import UserAgent

useragent = UserAgent()
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", useragent.random)
driver = webdriver.Firefox(firefox_profile=profile, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
driver.get("http://www.whatsmyua.info/")

连续3次执行结果如下:

    第一次执行:

    Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36
    

    第二次执行:

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

    第三次执行:

    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
    

【讨论】:

以上是关于如何在 Python + Selenium 中创建随机用户代理?的主要内容,如果未能解决你的问题,请参考以下文章

在 selenium 中创建 firefox 会话时出错

Selenium:无法在 Jenkins 管道中创建用于下载的文件夹和文件

在詹金斯管道中创建硒后端

如何在 Python 中创建 GUID/UUID

如何在python中创建一个zip文件

如何在 python 中创建列表? [复制]