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.
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.
Stellen Sie zunächst sicher, dass Selen installiert ist. Wenn nicht, können Sie es über pip:
installieren
pip install selenium
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()
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.
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()
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')
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!