Comment récupérer des valeurs à partir d'un contenu HTML dynamique à l'aide de Python
Lorsque vous essayez de récupérer des données à partir d'un site Web qui charge le contenu de manière dynamique, les méthodes conventionnelles utilisant La requête de Python ou les bibliothèques BeautifulSoup peuvent échouer. En effet, ces bibliothèques n'interprètent pas le code JavaScript qui génère les données.
Comprendre le problème
Dans l'exemple fourni, la page en question utilise des modèles de guidons pour créer du contenu dynamique. Lors de l'inspection de la source HTML avec les outils de développement d'un navigateur, vous pouvez trouver des espaces réservés de modèle tels que "{{formatPrice median}}" au lieu des valeurs réelles.
Solutions
Pour récupérer les valeurs réelles du contenu généré dynamiquement, vous devez utiliser des techniques qui interprètent JavaScript. Considérez les options suivantes :
Utilisation de Selenium avec BeautifulSoup
Pour la page d'exemple ( eve-central.com), en utilisant Selenium pour récupérer la valeur "médiane":
<code class="python">from bs4 import BeautifulSoup from selenium import webdriver driver = webdriver.Firefox() driver.get('http://eve-central.com/home/quicklook.html?typeid=34') html = driver.page_source soup = BeautifulSoup(html) for tag in soup.find_all('span', class_="a-price-amount"): print(tag.text)</code>
Ce code utilise Selenium pour charger la page et BeautifulSoup pour analyser le code HTML rendu, en extrayant les balises avec l'ID de classe spécifique et imprimer leur contenu textuel, qui inclut la valeur "médiane" souhaitée.
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!