Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann Python Werte aus dynamisch generierten HTML-Inhalten abrufen?

Wie kann Python Werte aus dynamisch generierten HTML-Inhalten abrufen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-19 07:45:02542Durchsuche

How Can Python Retrieve Values from Dynamically Generated HTML Content?

So rufen Sie Werte aus dynamischen HTML-Inhalten mit Python ab

Beim Versuch, Daten von einer Website abzurufen, die Inhalte dynamisch lädt, werden herkömmliche Methoden verwendet Die Anfrage von Python oder die BeautifulSoup-Bibliotheken schlagen möglicherweise fehl. Dies liegt daran, dass diese Bibliotheken keinen JavaScript-Code interpretieren, der die Daten generiert.

Das Problem verstehen

Im bereitgestellten Beispiel verwendet die betreffende Seite Lenkervorlagen Erstellen Sie dynamische Inhalte. Wenn Sie die HTML-Quelle mit den Entwicklertools eines Browsers überprüfen, finden Sie möglicherweise Vorlagenplatzhalter wie „{{formatPrice median}}“ anstelle der tatsächlichen Werte.

Lösungen

Um die tatsächlichen Werte aus dynamisch generierten Inhalten abzurufen, müssen Sie Techniken verwenden, die JavaScript interpretieren. Erwägen Sie die folgenden Optionen:

  • AJAX JSON direkt analysieren: Wenn die Daten über AJAX-Anfragen abgerufen werden, können Sie die JSON-Antworten abfangen und analysieren.
  • Verwenden Sie einen Offline-JavaScript-Interpreter: Installieren und verwenden Sie Tools wie SpiderMonkey oder Crowbar, um den JavaScript-Code auszuführen und die DOM-Elemente zu generieren.
  • Verwenden Sie ein Browser-Automatisierungstool: Nutzen Sie Treiber B. Selenium oder Watir, um mit einem Headless-Browser zu interagieren, JavaScript auszuführen und auf den gerenderten HTML-Code zuzugreifen.

Selenium mit BeautifulSoup verwenden

Für die Beispielseite ( eve-central.com) und verwendet Selenium, um den „Median“-Wert abzurufen:

<code class="python">from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://eve-central.com/home/quicklook.html?typeid=34')

html = driver.page_source
soup = BeautifulSoup(html)

for tag in soup.find_all('span', class_="a-price-amount"):
    print(tag.text)</code>

Dieser Code verwendet Selenium, um die Seite zu laden, und BeautifulSoup, um den gerenderten HTML-Code zu analysieren und Tags mit der spezifischen Klassen-ID zu extrahieren Drucken ihres Textinhalts, der den gewünschten „Median“-Wert enthält.

Das obige ist der detaillierte Inhalt vonWie kann Python Werte aus dynamisch generierten HTML-Inhalten abrufen?. 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