Heim >Web-Frontend >js-Tutorial >Wie kann ich dynamische, mit JavaScript gerenderte Inhalte in Python extrahieren?
Das Entfernen dynamischer Inhalte von Webseiten kann bei der Verwendung statischer Methoden wie urllib2.urlopen(request) in Python eine Herausforderung darstellen . Solche Inhalte werden häufig durch in die Seite eingebettetes JavaScript generiert und ausgeführt.
Ein Ansatz zur Lösung dieses Problems besteht darin, das Selenium-Framework mit Phantom JS als Webtreiber zu nutzen. Stellen Sie sicher, dass Phantom JS installiert ist und seine Binärdatei im aktuellen Pfad verfügbar ist.
Hier ist ein Beispiel zur Veranschaulichung:
import requests from bs4 import BeautifulSoup response = requests.get(my_url) soup = BeautifulSoup(response.text) soup.find(id="intro-text") # Result: <p>
Dieser Code ruft die Seite ohne JavaScript-Unterstützung ab. Verwenden Sie zum Scrapen mit JS-Unterstützung 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'
Alternativ können Sie Python-Bibliotheken verwenden, die speziell für das Scraping von JavaScript-gesteuerten Websites entwickelt wurden, wie z. B. 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>
Das obige ist der detaillierte Inhalt vonWie kann ich dynamische, mit JavaScript gerenderte Inhalte in Python extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!