Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Selenium更改浏览器类型和版本_Python_Selenium_Selenium Webdriver_Browser_User Agent - Fatal编程技术网

Python 使用Selenium更改浏览器类型和版本

Python 使用Selenium更改浏览器类型和版本,python,selenium,selenium-webdriver,browser,user-agent,Python,Selenium,Selenium Webdriver,Browser,User Agent,我正在使用下面的代码使用SeleniumWebDriver更改我的用户代理。然而,我可以看到Google analytics每次都可以很容易地检测到我的浏览器,甚至是它的版本(在本例中是Firefox 54.0)。用Chromedriver也试过了。同样的结果 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options i

我正在使用下面的代码使用SeleniumWebDriver更改我的用户代理。然而,我可以看到Google analytics每次都可以很容易地检测到我的浏览器,甚至是它的版本(在本例中是Firefox 54.0)。用Chromedriver也试过了。同样的结果

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from fake_useragent import UserAgent

useragent = ua.random

#Chrome
'''
opts.add_argument('"'+useragent+'"')
driver =  webdriver.Chrome(chrome_options=opts)
'''

#Firefox
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", useragent)
driver = webdriver.Firefox(profile)
driver.get("www.mywebsite.com")

如何正确更改用户代理?

以下是您问题的答案:

考虑到您的目标是使用Selenium Webdriver更改
用户代理
,您可以使用下面的代码块,每次使用
用户代理
随机访问网站:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from fake_useragent import UserAgent

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
useragent = UserAgent()
profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", useragent.random)
driver = webdriver.Firefox(firefox_profile=profile, firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
driver.get("http://www.whatsmyua.info/")
观察 在三次不同的运行中,生成了
用户代理

  • Mozilla/5.0(X11;Ubuntu;Linux x86;rv:21.0)Gecko/20130331 Firefox/21.0
  • Mozilla/5.0(Windows NT 6.1)AppleWebKit/537.36(KHTML,像Gecko)Chrome/27.0.1453.93 Safari/537.36
  • Mozilla/5.0(Windows NT 6.1;WOW64;Trident/7.0;AS;rv:11.0)像Gecko一样

  • 如果这能回答您的问题,请告诉我。

    您是否使用请求模块尝试过此功能?没有。但是,我需要硒元素。。顺便说一句,你用谷歌分析测试过
    请求吗?没有。这就是为什么我问你是否这样做,而不是把它写在答案里。如果他们表现不同,那会很有趣。不管怎样,如果有硒的话,我更喜欢它的答案