Maison >interface Web >js tutoriel >Comment supprimer le contenu dynamique rendu par JavaScript en Python ?

Comment supprimer le contenu dynamique rendu par JavaScript en Python ?

DDD
DDDoriginal
2024-12-22 09:58:04412parcourir

How to Scrape Dynamic JavaScript-Rendered Content in Python?

Comment gratter le contenu dynamique généré par JavaScript en Python

La suppression du contenu dynamique des pages Web peut poser des défis lors de l'utilisation de méthodes statiques telles que urllib2.urlopen(request) en Python . Ce contenu est souvent généré et exécuté par JavaScript intégré à la page.

Une approche pour résoudre ce problème consiste à exploiter le framework Selenium avec Phantom JS comme pilote Web. Assurez-vous que Phantom JS est installé et que son binaire est disponible dans le chemin actuel.

Voici un exemple pour illustrer :

import requests
from bs4 import BeautifulSoup
response = requests.get(my_url)
soup = BeautifulSoup(response.text)
soup.find(id="intro-text") # Result: <p>

Ce code récupérera la page sans support JavaScript. Pour scraper avec le support JS, utilisez Selenium :

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(my_url)
p_element = driver.find_element_by_id(id_='intro-text')
print(p_element.text) # Result: 'Yay! Supports javascript'

Vous pouvez également utiliser des bibliothèques Python spécialement conçues pour scraper des sites Web pilotés par JavaScript, tels que dryscrape :

import dryscrape
from bs4 import BeautifulSoup
session = dryscrape.Session()
session.visit(my_url)
response = session.body()
soup = BeautifulSoup(response)
soup.find(id="intro-text") # Result: <p>

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