Heim >Backend-Entwicklung >Python-Tutorial >Erstellen eines Webcrawlers mit Python: Extrahieren von Daten aus Webseiten
Ein Webspider oder Webcrawler ist ein automatisiertes Programm zum Navigieren im Internet sowie zum Sammeln und Extrahieren bestimmter Daten von Webseiten. Python, bekannt für seine klare Syntax, seine umfangreichen Bibliotheken und seine aktive Community, hat sich zur bevorzugten Sprache für die Erstellung dieser Crawler entwickelt. Dieses Tutorial bietet eine Schritt-für-Schritt-Anleitung zum Erstellen eines einfachen Python-Webcrawlers für die Datenextraktion, einschließlich Strategien zur Überwindung von Anti-Crawler-Maßnahmen, mit 98IP-Proxy als möglicher Lösung.
Stellen Sie sicher, dass Python auf Ihrem System installiert ist. Python 3 wird aufgrund seiner überlegenen Leistung und breiteren Bibliotheksunterstützung empfohlen. Laden Sie die entsprechende Version von der offiziellen Python-Website herunter.
Für die Erstellung eines Webcrawlers sind normalerweise die folgenden Python-Bibliotheken erforderlich:
requests
: Zum Senden von HTTP-Anfragen.BeautifulSoup
: Zum Parsen von HTML und Extrahieren von Daten.pandas
: Zur Datenbearbeitung und -speicherung (optional).time
und random
: Zum Verwalten von Verzögerungen und zum Randomisieren von Anfragen, um eine Erkennung durch Anti-Crawler-Mechanismen zu vermeiden.Installieren Sie diese mit pip:
<code class="language-bash">pip install requests beautifulsoup4 pandas</code>
Verwenden Sie die requests
-Bibliothek, um Webseiteninhalte abzurufen:
<code class="language-python">import requests url = 'http://example.com' # Replace with your target URL headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # Mimics a browser response = requests.get(url, headers=headers) if response.status_code == 200: page_content = response.text else: print(f'Request failed: {response.status_code}')</code>
Verwenden Sie BeautifulSoup, um den HTML-Code zu analysieren und Daten zu extrahieren:
<code class="language-python">from bs4 import BeautifulSoup soup = BeautifulSoup(page_content, 'html.parser') # Example: Extract text from all <h1> tags. titles = soup.find_all('h1') for title in titles: print(title.get_text())</code>
Websites nutzen Anti-Crawler-Techniken wie IP-Blockierung und CAPTCHAs. Um diese zu umgehen:
User-Agent
und Accept
festlegen, wie oben gezeigt.Verwendung von 98IP-Proxy (Beispiel):
Besorgen Sie sich eine Proxy-IP und einen Proxy-Port von 98IP Proxy. Integrieren Sie diese Informationen dann in Ihren requests
Anruf:
<code class="language-python">proxies = { 'http': f'http://{proxy_ip}:{proxy_port}', # Replace with your 98IP proxy details 'https': f'https://{proxy_ip}:{proxy_port}', # If HTTPS is supported } response = requests.get(url, headers=headers, proxies=proxies)</code>
Hinweis: Für ein robustes Crawling rufen Sie mehrere Proxy-IPs von 98IP ab und rotieren Sie sie, um Einzel-IP-Blockaden zu verhindern. Implementieren Sie eine Fehlerbehandlung, um Proxy-Fehler zu verwalten.
Speichern Sie extrahierte Daten in Dateien, Datenbanken oder Cloud-Speicher. So speichern Sie es in einer CSV-Datei:
<code class="language-bash">pip install requests beautifulsoup4 pandas</code>
Das obige ist der detaillierte Inhalt vonErstellen eines Webcrawlers mit Python: Extrahieren von Daten aus Webseiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!