Maison  >  Article  >  développement back-end  >  Comment extraire des valeurs d'un contenu HTML dynamique à l'aide de Selenium et BeautifulSoup de Python ?

Comment extraire des valeurs d'un contenu HTML dynamique à l'aide de Selenium et BeautifulSoup de Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-19 07:47:01980parcourir

How to Extract Values from Dynamic HTML Content Using Python's Selenium and BeautifulSoup?

Comment récupérer les valeurs d'un contenu HTML dynamique à l'aide de Python

Dans cette discussion, nous explorons un problème courant rencontré lors du scraping de contenu HTML dynamique avec Python : rencontrer des espaces réservés de modèle à la place de valeurs réelles. Plus précisément, notre objectif est de récupérer la valeur « médiane » d'une page Web qui utilise des modèles de guidon.

Au départ, l'utilisation de la bibliothèque de requêtes seule ne donnera pas les résultats souhaités car elle ne peut pas gérer le rendu basé sur JavaScript du page. Pour surmonter cela, nous explorons trois solutions principales :

  • Analyser directement Ajax JSON : Cela implique d'intercepter et d'analyser la réponse JSON que la page envoie au navigateur.
  • Utilisation d'un interprète JavaScript hors ligne :Utilisez des outils tels que SpiderMonkey ou Crowbar pour traiter la demande et générer le code HTML entièrement rendu.
  • Utilisation d'un outil d'automatisation du navigateur :Exploitez des outils tels que Selenium ou Watir pour automatiser le navigateur, lui permettant de traiter JavaScript et de restituer la page.

Dans notre cas, nous recommandons Selenium en conjonction avec BeautifulSoup. En utilisant Selenium pour obtenir le HTML rendu et BeautifulSoup pour l'analyser, nous pouvons accéder efficacement au contenu HTML dynamique. Vous trouverez ci-dessous un exemple d'extrait de code :

<code class="python">from bs4 import BeautifulSoup
from selenium import webdriver

# Get rendered HTML using Selenium
driver = webdriver.Firefox()
driver.get('http://eve-central.com/home/quicklook.html?typeid=34')
html = driver.page_source

# Parse HTML using BeautifulSoup
soup = BeautifulSoup(html)

# Search for specific tags, e.g., those with a "formatPrice median" class
for tag in soup.find_all('formatPrice median'):
    median_value = tag.text</code>

Cette approche nous permet de naviguer et d'interagir avec la page Web comme le ferait un vrai navigateur, nous permettant d'obtenir les données nécessaires, même si elles sont chargées dynamiquement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn