Heim >Web-Frontend >js-Tutorial >Wie kann ich dynamische, mit JavaScript gerenderte Inhalte in Python extrahieren?

Wie kann ich dynamische, mit JavaScript gerenderte Inhalte in Python extrahieren?

DDD
DDDOriginal
2024-12-22 09:58:04397Durchsuche

How to Scrape Dynamic JavaScript-Rendered Content in Python?

So entfernen Sie von JavaScript generierte dynamische Inhalte in Python

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn