Maison >développement back-end >Tutoriel Python >Comment gratter des pages Web dynamiques avec JavaScript à l'aide de Python ?

Comment gratter des pages Web dynamiques avec JavaScript à l'aide de Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 18:07:09372parcourir

How to Scrape Dynamic Web Pages with JavaScript using 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!

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