web-dev-qa-db-fra.com

Façon de changer Google Chrome agent utilisateur dans Selenium?

J'essaie de trouver un moyen par lequel chaque fois que j'ouvre Chrome via Selenium (en Python) dans ce script particulier, la page Chrome Chrome s'ouvre automatiquement) avec un autre agent utilisateur sélectionné - dans ce cas, Microsoft Edge Mobile (mais j'y accéderai depuis le bureau).

Donc, après avoir fait des recherches, j'ai pu reconstituer le code suivant, qui, selon moi, exécuterait un changement d'agent utilisateur dans Chrome, puis ouvrirait une nouvelle page Bing.com :

à partir du sélecteur Web d'importation de sélénium

de Selenium.webdriver.chrome.options

options d'importation 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, comme 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/ ")

Cependant, le code ne semble pas fonctionner et s'arrête avant d'ouvrir la page Web désignée. Je suis assez certain que la première moitié du code est désactivée, mais je ne sais pas trop comment. Toute aide serait grandement appréciée.

8
theCrabNebula

Un moyen simple d'utiliser un agent utilisateur aléatoire serait d'utiliser _ [fake_useragent module comme suit:

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()

Le résultat de 3 exécutions consécutives est le suivant:

  1. Première exécution:

    Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36
    
  2. Deuxième exécution:

    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36
    
  3. Troisième exécution:

    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
    
17
DebanjanB

Vous devez utiliser ChromeOptions de Selenium.webdriver:

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)

Cela devrait fonctionner.

7
Tim Woocker