So scrapen Sie eine dynamische Seite (JavaScript) in Python
Beim Web-Scraping sind statische HTML-Seiten relativ einfach zu handhaben. Die Herausforderung entsteht jedoch, wenn der Inhalt auf der Zielseite dynamisch von JavaScript generiert wird.
In Python liest die Verwendung von urllib2.urlopen(request) für Seiteninhalte nur das, was im HTML angezeigt wird, was möglicherweise kein JavaScript enthält -generierte Elemente. Um auf diesen dynamischen Inhalt zuzugreifen, müssen wir eine Browserumgebung innerhalb von Python-Code simulieren.
Verwendung von Selenium mit PhantomJS
Selenium ist eine Python-Bibliothek, die die Interaktion mit Webbrowsern ermöglicht . PhantomJS ist ein Headless-Browser, der ohne grafische Benutzeroberfläche läuft. Zusammen bieten sie eine geeignete Möglichkeit zum Scrapen dynamischer Inhalte.
import requests from selenium import webdriver # Ensure PhantomJS is installed and in the current path print(webdriver.PhantomJS().version) # Print version for confirmation url = 'my_url' # Create a PhantomJS webdriver driver = webdriver.PhantomJS() driver.get(url) # Retrieve the element with id "intro-text" p_element = driver.find_element_by_id('intro-text') # Print the text content of the element print(p_element.text)
Dryscape verwenden
Dryscape ist eine weitere Python-Bibliothek, die speziell für das Headless-JavaScript-Scraping entwickelt wurde.
import dryscrape from bs4 import BeautifulSoup url = 'my_url' # Create a Dryscrape session session = dryscrape.Session() session.visit(url) # Get the page body response = session.body() soup = BeautifulSoup(response) # Find the element with id "intro-text" soup.find(id='intro-text')
Das obige ist der detaillierte Inhalt vonWie scrape ich dynamische Webseiten mit JavaScript mit Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!