Maison >interface Web >js tutoriel >Comment supprimer le contenu dynamique rendu 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!