Wie man eine JavaScript-Website mit Python scrapen kann

Anleitungen, Python, Scraping, Nov-15-20225 Min. gelesen

Die Webbrowser verwenden Javascript, um ein dynamisches und interaktives Erlebnis für den Benutzer zu schaffen. Ein Großteil der Anwendungen und Funktionen, die das Internet für das moderne Leben unverzichtbar machen, sind in Form von Javascript kodiert. In den frühen Versionen von Javascript waren die Webseiten statisch und boten dem Benutzer nur wenig Interaktion, abgesehen vom Anklicken von Links.

Inhaltsübersicht

Die Webbrowser verwenden Javascript, um ein dynamisches und interaktives Erlebnis für den Benutzer zu schaffen. Ein Großteil der Anwendungen und Funktionen, die das Internet für das moderne Leben unverzichtbar machen, sind in Form von Javascript kodiert. In den Anfängen von Javascript waren die Webseiten statisch und boten wenig Benutzerinteraktion über das Anklicken von Links und das Laden neuer Seiten hinaus. 

Im Folgenden sind einige der dynamischen Website-Verbesserungen aufgeführt, die durch Javascript durchgeführt werden.

  • Eingabevalidierung von Webformularen
  • Animation von Seitenelementen wie Größenänderung, Verschieben und Überblenden
  • Laden neuer Daten ohne Neuladen der Seite
  • Abspielen von Audio und Video
  • Behebung der Browser-Kompatibilitätsprobleme

Sie können Scraping verwenden, um strukturierte Daten von Websites auf automatisierte Weise zu sammeln. Web Scraping ist auch als Webdatenextraktion bekannt. Einige der Hauptanwendungsfälle von Web Scraping sind folgende:

  • Überwachung der Nachrichten
  • Preis Intelligenz
  • Generierung von Leads
  • Preisüberwachung
  • Marktforschung

Zunächst müssen wir verstehen, warum es notwendig ist, Websites zu scrapen.

Warum müssen Sie eine Javascript-Website scrapen?

Die Unternehmen nutzen Web Scraping, um die riesige Menge an öffentlich verfügbaren Daten für intelligentere Entscheidungen zu nutzen. Im Folgenden sind einige der Bereiche aufgeführt, in denen Web Scraping eingesetzt wird.

  • eCommerce
  • Soziale Medien
  • Bankwesen 
  • Finanzen
  • Marketing 
  • Liegenschaften
  • Finanzen
  • Optimierung der Suchmaschine
  • Verkaufsanfragen

Nachfolgend sind die Gründe aufgeführt, aus denen Unternehmen die Websites scrapen müssen.

Automatisierung - Es ist nicht möglich, jede einzelne Information von einer Website zu kopieren und einzufügen. Die Unternehmen verwenden Scraping-Software, um die meisten der damit verbundenen Prozesse zu automatisieren.

Datenverwaltung - Sie können keine Datenbanken und Tabellenkalkulationen verwenden, um Zahlen und Ziffern auf einer in HTML konfigurierten Website zu verwalten. Daher verwenden die Unternehmen Web-Scraping-Tools für die Verwaltung ihrer Daten.

Real Estate Listing - Die Immobilienmakler verwenden Web Scraping, um ihre Datenbank mit verfügbaren Miet- oder Verkaufsobjekten zu füllen. 

Vergleichsdaten von Einkaufsseiten - Die Unternehmen nutzen Web Scraping, um Preis- und Produktdaten von jedem Einzelhändler abzugreifen, damit sie ihren Nutzern die gewünschten Vergleichsdaten zur Verfügung stellen können. 

Branchenstatistiken und Einblicke - Die Unternehmen nutzen Scraping, um umfangreiche Datenbanken aufzubauen und daraus branchenspezifische Erkenntnisse zu gewinnen. So kann ein Unternehmen beispielsweise tonnenweise Daten über Ölpreise auslesen und analysieren. Anschließend kann es seine Erkenntnisse an Ölgesellschaften in aller Welt verkaufen.

Scraping einer Javascript-Website mit Python

Sehen wir uns an, wie Sie Selenium verwenden können, um Javascript-Websites zu scrapen.

Installation der Selenium-Bibliothek

Sie können Selenium mit dem folgenden Befehl installieren.

pip install selenium

Installation des Web-Treibers

Wussten Sie, dass Selenium einen echten Browser simuliert? Es verwendet nicht Ihre Chrome-Installation, sondern einen Treiber, um einen Browser auszuführen. Die Selenium-Web-Treiber beziehen sich sowohl auf die Sprachbindungen als auch auf die Implementierungen der einzelnen Browser-Steuerungscodes. Sie müssen den Webtreiber herunterladen und können ihn zur Umgebungsvariablen path hinzufügen. Wir werden den Firefox-Web-Treiber verwenden, und Sie können ihn über diesen Link installieren.

Beispiel

Betrachten wir ein einfaches Selenium-Beispiel, das die Erfassung eines Website-Titels beinhaltet. Dazu importieren wir zunächst den Webdriver von Selenium in eine Python-Datei, wie unten gezeigt:

von selenium import webdriver

Wir müssen den Pfad angeben, in dem sich der Webdriver befindet. Anschließend müssen wir den Firefox-Web-Treiber initialisieren.

WEBDRIVER_PFAD = './'
Treiber = webdriver.Firefox(WEBDRIVER_PATH)

Jetzt definieren wir die URL, um den Titel der Website zu erhalten.

URL = 'https://www.google.com'
driver.get(URL)
print (driver.title)

Wenn Sie den obigen Code ausführen, öffnet sich ein Firefox-Fenster, das den Titel der Website in der Konsole ausgibt. Wir haben in diesem Fall die URL von Google als Beispiel definiert, so dass das Ergebnis wie folgt aussehen wird:

Dies ist die Google-Seite des Firefox-Web-Treibers. Der Titel, der auf der Konsole gedruckt wird, lautet wie folgt:

Wir müssen das Firefox-Fenster, das geöffnet wurde, manuell schließen. Wir fügen driver.quit() am Ende unseres Codes hinzu, damit das Fenster automatisch geschlossen wird, wenn die Arbeit erledigt ist. 

von selenium import webdriver 

WEBDRIVER_PFAD = './'
Treiber = webdriver.Firefox(WEBDRIVER_PATH) 

URL = 'https://www.google.com'
driver.get(URL)
print (driver.title)
driver.quit()

Wenn Sie Daten von einer dynamischen Website abrufen möchten, können Sie die gleichen Schritte wie oben beschrieben durchführen. Wenn Sie zum Beispiel den Youtube-Titel abrufen möchten, können Sie den folgenden Code verwenden.

von selenium import webdriver 
 
WEBDRIVER_PFAD = './' 
Treiber = webdriver.Firefox(WEBDRIVER_PATH) 
URL = 'https://www.youtube.com'
driver.get(URL)
print (driver.title)
driver.quit()

Lassen Sie uns hier etwas Neues ausprobieren. Wir können das Suchfeld bearbeiten und es mit dem Wort "Selenium" füllen, indem wir die Klasse "Keys" wie unten gezeigt verwenden.

from selenium.webdriver.common.keys import Keys

Nach der Initialisierung des Firefox-Web-Treibers und dem Abrufen des Youtube-Titels erstellen wir ein Objekt, das das Suchfeld mit xpath enthält.

such_box = driver.find_element_by_xpath('//input[@id="search"]')

Anschließend bearbeiten wir den Inhalt des Suchfelds und füllen es mit dem Wort "Selenium".

search_box.send_keys('Selenium')

Sobald wir das Suchfeld mit dem gewünschten Inhalt gefüllt haben, können wir "Enter" drücken, um die Suche zu aktivieren.

such_box.send_keys(Schlüssel.ENTER)

In der Abbildung unten sehen Sie, dass das Youtube-Suchfeld das Wort "Selenium" enthält.

Verwendung eines Proxys

Die Proxys werden benötigt, wenn Sie einen lokalisierten Webinhalt benötigen. Sie sind auch erforderlich, wenn Sie in kurzer Zeit zu viele Anfragen an eine Website senden. Sie benötigen Proxys für Selenium, wenn automatisierte Tests erforderlich sind. Um jedoch einen Selenium-Proxy für das Scraping einer Javascript-Website zu verwenden, müssen Sie einen Selenium-Draht verwenden, der die Selenium-Bindungen erweitert und Zugriff auf die zugrunde liegenden Anfragen des Browsers gewährt.

Um Selenium mit einem Proxy zu verwenden, müssen Sie das folgende Paket installieren.

von selenium wire import webdriver

Nach der Installation der Python-Bibliothek selenium-wire müssen Sie Folgendes beachten:

  • proxy_benutzername
  • proxy_passwort
  • proxy_url
  • proxy_port

Hier haben wir als Beispiel eine zufällige Portnummer 8080 genannt. Sie können den Benutzernamen, das Passwort und die URL der gewünschten Website Ihrer Wahl festlegen.

proxy_username = "USER_NAME"
proxy_password = "PASSWORD"
proxy_url = "Any Website URL"
proxy_port = 8080

options = {
    "proxy": {
        "http": f"http://{proxy_username}:{proxy_password}@{proxy_url}:{proxy_port}",
        "verify_ssl": False,
    },
}

Für den Selenium-Web-Treiber sind Proxys für Privatanwender die beste Wahl. Der Grund dafür ist, dass sie im Gegensatz zu Proxys für Rechenzentren nicht so leicht entdeckt werden können. Sie leiten die Anfragen der Kunden über private IPs weiter und genießen mehr Vertrauen als IPs von Rechenzentren. Sie sind auch nützlich für den Zugriff auf komplexe Websites, die Javascript verwenden, wie Youtube, Google, Instagram usw.

Warum Proxies für das Scraping einer JS-Website verwenden

Die Verwendung von Proxys für das Scraping einer Website ist aus folgenden Gründen erforderlich:

  • Proxys werden zur Verbesserung der Sicherheit und zum Ausgleich des Internetverkehrs einer Website eingesetzt.
  • Die Web-Scraper müssen Proxys verwenden, um ihre Identität zu verbergen und ihren Datenverkehr wie den eines normalen Nutzers aussehen zu lassen.
  • Die Proxys werden auch zum Schutz der persönlichen Daten der Internetnutzer eingesetzt.
  • Proxys helfen beim Zugriff auf Websites, die von den Zensurmechanismen des Landes blockiert werden.
  • Mit Proxys können Sie Websites zuverlässig crawlen. 
  • Proxys sind wertvoll, wenn Sie Produktdaten von Online-Händlern abrufen müssen. Denn sie ermöglichen es Ihnen, Ihre Anfrage von einer bestimmten geografischen Region aus zu stellen, und Sie können auf die spezifischen Inhalte zugreifen, die die Website für diesen Standort anzeigt.
  • Proxys helfen Ihnen, eine große Anzahl von Anfragen an die Ziel-Website zu stellen, ohne gesperrt zu werden.
  • Mit Proxys können Sie unbegrenzt viele gleichzeitige Verbindungen zu derselben oder zu verschiedenen Websites herstellen.

Schlussfolgerung

Web-Scraping ist wichtig, da man es für verschiedene Zwecke nutzen kann:

  • Scraping von Produkt-/Dienstleistungsanzeigen und Einblicke in ihre Budgets
  • Den Modetrend vorhersehen, um wettbewerbsfähig zu bleiben
  • Scraping von Social-Media-Kanälen und Entdeckung potenzieller Kunden usw.

Außerdem haben wir besprochen, wie Sie Selenium verwenden können, um mit Javascript ausgestattete Websites in Python zu scrapen. Sie können sowohl Inhalte statischer Websites als auch dynamischer Websites wie Youtube scrapen. Sie müssen auch Selenium-Proxys für automatisierte Tests verwenden. Die besten Proxys, die Sie verwenden können, sind die Wohn-Proxys , da sie superschnell sind und im Gegensatz zu anderen Proxys nicht leicht entdeckt werden können.

Ich hoffe, Sie haben verstanden, wie man eine Javascript-Website mit Python scrapen kann.