Maison >développement back-end >Tutoriel Python >Comment gratter des pages Web dynamiques avec JavaScript à l'aide de Python ?
Comment gratter une page dynamique (JavaScript) en Python
Lorsqu'il s'agit de scraping Web, les pages HTML statiques sont relativement simples à gérer. Cependant, le défi se pose lorsque le contenu de la page cible est généré dynamiquement par JavaScript.
En Python, l'utilisation de urllib2.urlopen(request) pour le contenu de la page lit uniquement ce qui est présenté dans le code HTML, qui peut ne pas inclure JavaScript. -éléments générés. Pour accéder à ce contenu dynamique, nous devons simuler un environnement de navigateur dans le code Python.
Utiliser Selenium avec PhantomJS
Selenium est une bibliothèque Python qui permet d'interagir avec les navigateurs Web. . PhantomJS est un navigateur sans tête qui fonctionne sans interface utilisateur graphique. Ensemble, ils constituent un moyen approprié de gratter du contenu dynamique.
import requests from selenium import webdriver # Ensure PhantomJS is installed and in the current path print(webdriver.PhantomJS().version) # Print version for confirmation url = 'my_url' # Create a PhantomJS webdriver driver = webdriver.PhantomJS() driver.get(url) # Retrieve the element with id "intro-text" p_element = driver.find_element_by_id('intro-text') # Print the text content of the element print(p_element.text)
Utilisation de Dryscape
Dryscape est une autre bibliothèque Python conçue spécifiquement pour le scraping JavaScript sans tête.
import dryscrape from bs4 import BeautifulSoup url = 'my_url' # Create a Dryscrape session session = dryscrape.Session() session.visit(url) # Get the page body response = session.body() soup = BeautifulSoup(response) # Find the element with id "intro-text" soup.find(id='intro-text')
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!