Beispiel für dynamisches Web-Scraping in Python: Anwendung von Selenium und Webdriver

PHPz
Freigeben: 2024-08-23 16:30:37
Original
1133 Leute haben es durchsucht

Python dynamic web scraping example: application of selenium and webdriver

Dynamisches Web-Scraping verwendet normalerweise einige Python-Bibliotheken, z. B. Requests zur Verarbeitung von HTTP-Anfragen, Selenium zur Simulation des Browserverhaltens oder Pyppeteer. Der folgende Artikel konzentriert sich auf die Verwendung von Selen.

Eine kurze Einführung in Selen

Selenium ist ein Tool zum Testen von Webanwendungen, wird aber auch häufig zum Web-Scraping verwendet, insbesondere wenn es notwendig ist, von JavaScript dynamisch generierte Webinhalte zu verschrotten. Selenium kann Benutzerverhalten im Browser simulieren, z. B. Klicken, Texteingabe und Abrufen von Webseitenelementen.

Beispiel für dynamisches Web-Scraping in Python

Stellen Sie zunächst sicher, dass Selen installiert ist. Wenn nicht, können Sie es über pip:
installieren

pip install selenium
Nach dem Login kopieren

Sie müssen außerdem den WebDriver für den entsprechenden Browser herunterladen. „Angenommen, wir verwenden den Chrome-Browser“, müssen Sie ChromeDriver herunterladen und sicherstellen, dass sein Pfad zu den Systemumgebungsvariablen hinzugefügt wird, oder Sie können seinen Pfad direkt im Code angeben. ‌

Hier ist ein einfaches Beispiel, um den Titel einer Webseite zu erfassen:‌

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Setting up webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()
Nach dem Login kopieren

Dieses Skript öffnet example.com, ruft den Titel ab und druckt ihn aus. ‌

Beachten Sie, dass ‌webdriver_manager eine Bibliothek eines Drittanbieters ist, die WebDriver-Versionen automatisch verwaltet. ‌Wenn Sie es nicht verwenden möchten, können Sie WebDriver auch manuell herunterladen und den Pfad angeben. ‌

Dynamische Webseiten können mit JavaScript gerenderte Inhalte beinhalten. ‌Selenium kann warten, bis diese Elemente geladen sind, bevor es in Betrieb genommen wird, was sich sehr gut für die Verarbeitung solcher Webseiten eignet. ‌

Legen Sie beim Scraping dynamischer Webseiten in Python einen Proxy fest

Wenn Sie Python zum Crawlen dynamischer Webseiten verwenden, verwenden Sie häufig einen Proxy. Der Einsatz eines Proxys vermeidet einerseits viele Hürden und beschleunigt andererseits die Arbeitseffizienz.

Die Installation von Selen haben wir oben vorgestellt. Darüber hinaus müssen Sie auch den WebDriver des entsprechenden Browsers herunterladen und sicherstellen, dass sein Pfad zu den Umgebungsvariablen des Systems hinzugefügt wird, oder Sie können seinen Pfad direkt im Code angeben.
Nachdem wir die oben genannten Schritte ausgeführt haben, können wir den Proxy konfigurieren und dynamische Webseiten löschen:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Set Chrome options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port')

# Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step)
# driver_path = 'path/to/your/chromedriver'
# driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

# If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables)
driver = webdriver.Chrome(options=chrome_options)

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()
Nach dem Login kopieren

In diesem Beispiel ist ‌--proxy-server=http://your_proxy_ip:port der Parameter zum Konfigurieren des Proxys.‌ Sie müssen your_proxy_ip und port durch die IP-Adresse und Portnummer des tatsächlichen Proxyservers ersetzen verwenden.‌

Wenn Ihr Proxyserver eine Authentifizierung erfordert,‌ können Sie das folgende Format verwenden:‌

chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')
Nach dem Login kopieren

Wobei Benutzername und Passwort der Benutzername und das Passwort Ihres Proxyservers sind. ‌

Nachdem der obige Code ausgeführt wurde, „greift Selenium über den konfigurierten Proxyserver auf die Zielwebseite zu“ und druckt den Titel der Webseite aus. ‌
Wie lege ich den Pfad zu ChromeDriver fest?
ChromeDriver ist Teil von Selenium WebDriver. Es interagiert über die WebDriver-API mit dem Chrome-Browser, um Funktionen wie automatisierte Tests und Webcrawler zu implementieren. ‌
Die Angabe des Pfads von ChromeDriver umfasst hauptsächlich die Konfiguration von Umgebungsvariablen. ‌Hier sind die spezifischen Schritte: ‌
1. Finden Sie den Installationsort von Chrome
Sie finden es, indem Sie mit der rechten Maustaste auf die Google Chrome-Verknüpfung auf dem Desktop klicken und „Dateispeicherort öffnen“ auswählen. ‌
2. Fügen Sie den Installationspfad von Chrome zur Systemumgebungsvariablen Path
hinzu Dadurch kann das System ChromeDriver an jedem Ort erkennen. ‌
3. Laden Sie ChromeDriver herunter und entpacken Sie es
Stellen Sie sicher, dass Sie den ChromeDriver herunterladen, der zur Version des Chrome-Browsers passt, und ihn in ein EXE-Programm entpacken. ‌
4. Kopieren Sie die exe-Datei von ChromeDriver in den Installationspfad von Chrome
Auf diese Weise kann das System ChromeDriver automatisch erkennen und aufrufen, wenn Sie es verwenden müssen

Das Obige ist die Anwendung von Selenium und Webdriver beim dynamischen Webcrawlen in Python und wie man dies beim Crawlen von Webseiten vermeidet. Natürlich können Sie anhand der obigen Beispiele auch tatsächliche Vorgänge üben.

Das obige ist der detaillierte Inhalt vonBeispiel für dynamisches Web-Scraping in Python: Anwendung von Selenium und Webdriver. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage