# Selenium Python (3) : contourner la détection de Selenium avec Python, les user-agents et l’exécution en arrière-plan

Découvrez comment contourner la détection de navigation automatisée avec Python, les user agents et l'exécution en arrière-plan. Améliorez vos compétences en web scraping et automation.

- Auteur: [Brandon Perry](https://fineproxy.org/fr/brandon-perry/)
- Publié: 2024-06-03T11:05:26.000Z
- Mis à jour: 2024-05-27T11:43:25.000Z
- URL canonique: https://fineproxy.org/fr/selenium-python-3-how-to-bypass-selenium-detection-using-python-user-agents-and-background-execution/

Le web scraping et l'automatisation des navigateurs sont devenus essentiels pour de nombreuses entreprises et développeurs. Cependant, de nombreux sites détectent et bloquent désormais la navigation automatisée. Cet article explorera comment contourner la détection Selenium en utilisant Python en manipulant les user agents et en exécutant Selenium en arrière-plan. Nous plongerons dans des étapes détaillées, des outils et les meilleures pratiques pour assurer un web scraping réussi.

## Comprendre la détection de Selenium

Avant de contourner la détection, comprenons comment cela fonctionne. Les sites web peuvent détecter Selenium en vérifiant la présence de certains drapeaux et propriétés du pilote web. Lorsqu'un site identifie ces drapeaux, il peut bloquer l'accès ou présenter des données trompeuses. Par exemple, lorsque vous ouvrez un site à l'aide d'un navigateur Chrome standard, il répond comme prévu. Cependant, lorsque vous ouvrez le même site à l'aide de Selenium, le site web peut détecter l'automatisation et la bloquer. Cette détection se produit car Selenium définit des drapeaux spécifiques que les sites web peuvent rechercher.

## Modification des drapeaux WebDriver

Pour contourner la détection de Selenium, une méthode efficace consiste à modifier les drapeaux WebDriver.

1.  **Configuration de Firefox**: Ouvrez la page de configuration de Firefox en tapant `about:config` dans la barre d'adresse. Localisez le drapeau lié à WebDriver et définissez-le sur `false`.
2.  **Implémentation du code**:

```python
from selenium import webdriver

# Set Firefox preferences
options = webdriver.FirefoxOptions()
options.set_preference("dom.webdriver.enabled", False)
options.set_preference('useAutomationExtension', False)

driver = webdriver.Firefox(options=options)
```

Ce script désactive le drapeau de détection WebDriver, faisant apparaître le navigateur comme une instance ordinaire pilotée par l'utilisateur.

## User Agents

Un agent utilisateur est une chaîne qu'un navigateur envoie à un serveur web pour s'identifier. Modifier la chaîne d'agent utilisateur peut rendre les requêtes de Selenium indiscernables des requêtes de navigateur régulières.

**Étapes pour modifier l'agent utilisateur**:

1.  **Identifier une chaîne d'agent utilisateur courante**: Exemple : `"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"`
2.  **Implémenter la modification dans Selenium**:

```python
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")

driver = webdriver.Chrome(options=options)
```

En définissant un agent utilisateur personnalisé, nous pouvons contourner de nombreuses détections basiques.

## Exécuter Selenium en arrière-plan

Exécuter le navigateur en arrière-plan est un autre aspect crucial pour éviter la détection. Ceci peut être réalisé en exécutant le navigateur en mode headless.

**Mise en œuvre**:

```python
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(options=options)
```

Exécuter en mode headless signifie qu'aucune interface graphique n'est affichée, ce qui est essentiel pour exécuter des tâches automatisées sur les serveurs.

## Désactiver les notifications et les sons du navigateur

La navigation automatisée implique souvent de gérer des pop-ups et des notifications inattendus. Les désactiver peut simplifier le processus.

**Exemple de code**:

```python
from selenium import webdriver

options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
options.add_experimental_option("prefs", prefs)
options.add_argument("--mute-audio")

driver = webdriver.Chrome(options=options)
```

Ce script désactive les notifications et met en sourdine l'audio, garantissant une automatisation sans interruption.

## Exemple d'analyse de données

Considérons un exemple pratique d'analyse de pseudonymes sur un site qui génère des noms d'utilisateur aléatoires.

**Étapes**:

1.  **Charger le site et interagir avec les éléments**:

```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")

driver = webdriver.Chrome(options=options)
driver.get("https://example.com")

# Locate the username field and extract nicknames
usernames = []
for _ in range(10):
    nickname = driver.find_element(By.ID, "nickname").text
    usernames.append(nickname)
    driver.find_element(By.ID, "generate").click()
print(usernames)
```

## Conclusion

En manipulant les drapeaux WebDriver, en changeant les user agents, en exécutant Selenium en arrière-plan et en désactivant les notifications du navigateur, vous pouvez contourner efficacement la détection Selenium. Ces techniques sont essentielles pour un web scraping et une automatisation transparents et non détectés. La mise en œuvre de ces méthodes garantit que vos tâches automatisées restent ininterrompues et efficaces. N'oubliez pas d'utiliser toujours le web scraping et l'automatisation de manière éthique, en respectant les conditions de service des sites web et les lois sur la protection des données. Pour des techniques plus avancées et des mises à jour régulières, restez à l'écoute de notre blog sur FineProxy.org. N'hésitez pas à partager vos idées et vos commentaires ci-dessous. Si vous avez aimé cet article, n'oubliez pas de vous abonner à notre chaîne et de laisser un like. Bon scraping !

En mettant en œuvre ces étapes et en ajustant les paramètres selon vos besoins, vous pouvez assurer que vos projets d'automatisation s'exécutent sans problème et sans être détectés.
