Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie den Python-Crawler zum Crawlen von Webseitendaten mithilfe von BeautifulSoup und Requests

So verwenden Sie den Python-Crawler zum Crawlen von Webseitendaten mithilfe von BeautifulSoup und Requests

WBOY
WBOYnach vorne
2023-04-29 12:52:062201Durchsuche

1. Einführung

Das Implementierungsprinzip des Webcrawlers kann in den folgenden Schritten zusammengefasst werden:

  • HTTP-Anfrage senden: Web Crawler Erhalten Sie Webinhalte, indem Sie eine HTTP-Anfrage (normalerweise eine GET-Anfrage) an die Zielwebsite senden. In Python können HTTP-Anfragen über die Requests-Bibliothek gesendet werden.

  • HTML analysieren: Nachdem der Crawler die Antwort von der Zielwebsite erhalten hat, muss er den HTML-Inhalt analysieren, um nützliche Informationen zu extrahieren. HTML ist eine Auszeichnungssprache, die zur Beschreibung der Struktur von Webseiten verwendet wird. Sie besteht aus einer Reihe verschachtelter Tags. Der Crawler kann die erforderlichen Daten anhand dieser Tags und Attribute finden und extrahieren. In Python können Sie Bibliotheken wie BeautifulSoup und lxml zum Parsen von HTML verwenden.

  • Datenextraktion: Nach dem Parsen des HTML muss der Crawler die erforderlichen Daten gemäß vorgegebenen Regeln extrahieren. Diese Regeln können auf Tag-Namen, Attributen, CSS-Selektoren, XPath usw. basieren. In Python bietet BeautifulSoup tag- und attributbasierte Datenextraktionsfunktionen, und lxml und cssselect können CSS-Selektoren und XPath verarbeiten.

  • Datenspeicherung: Die vom Crawler erfassten Daten müssen normalerweise zur späteren Verarbeitung in einer Datei oder Datenbank gespeichert werden. In Python können Sie Datei-E/A-Vorgänge, eine CSV-Bibliothek oder eine Datenbankverbindungsbibliothek (z. B. sqlite3, pymysql, pymongo usw.) verwenden, um Daten in einer lokalen Datei oder Datenbank zu speichern.

  • Automatische Durchquerung: Die Daten vieler Websites sind auf mehrere Seiten verteilt, und Crawler müssen diese Seiten automatisch durchqueren und Daten extrahieren. Der Traversal-Prozess umfasst normalerweise das Entdecken neuer URLs, das Umblättern usw. Der Crawler kann beim Parsen des HTML nach neuen URLs suchen, diese zur zu crawlenden Warteschlange hinzufügen und mit den oben genannten Schritten fortfahren.

  • Asynchron und Parallelität: Um die Crawler-Effizienz zu verbessern, können Asynchron- und Parallelitätstechnologien verwendet werden, um mehrere Anfragen gleichzeitig zu verarbeiten. In Python können Sie Multithreading (Threading), Multiprozess (Multiprocessing), Coroutine (Asyncio) und andere Technologien verwenden, um gleichzeitiges Crawlen zu erreichen.

  • Anti-Crawler-Strategien und Reaktionen: Viele Websites haben Anti-Crawler-Strategien eingeführt, wie z. B. die Begrenzung der Zugriffsgeschwindigkeit, die Erkennung von User-Agent, Verifizierungscodes usw. Um mit diesen Strategien umzugehen, müssen Crawler möglicherweise Proxy-IP verwenden, Browser-User-Agent simulieren, Verifizierungscodes automatisch identifizieren und andere Techniken anwenden. In Python können Sie die Bibliothek fake_useragent verwenden, um einen zufälligen User-Agent zu generieren, und Tools wie Selenium verwenden, um Browservorgänge zu simulieren.

2. Das Grundkonzept des Webcrawlers

Webcrawler, auch Web Spider und Web Robot genannt, ist eine Art Webcrawler das automatisch Daten aus dem Internet crawlt und crawlt. Ein Programm, das Webseiteninformationen abruft. Crawler befolgen normalerweise bestimmte Regeln, um Webseiten zu besuchen und nützliche Daten zu extrahieren.

3. Einführung in die Beautiful Soup- und Requests-Bibliothek

  1. Beautiful Soup: eine Python-Bibliothek zum Parsen von HTML- und XML-Dokumenten, die eine einfache Möglichkeit, Daten aus Webseiten zu extrahieren.

  2. Requests: Eine einfache und benutzerfreundliche Python-HTTP-Bibliothek zum Senden von Anfragen an Websites und zum Erhalten von Antwortinhalten.

4. Wählen Sie eine Zielwebsite

Dieser Artikel verwendet eine Seite in Wikipedia als Beispiel, um den Titel und die Absätze auf der Seite zu erfassen . Information. Um das Beispiel zu vereinfachen, crawlen wir die Wikipedia-Seite der Python-Sprache (https://en.wikipedia.org/wiki/Python_(programming_sprache).

5. Verwenden Sie Anfragen, um Webinhalte zu erhalten# 🎜🎜 #

Installieren Sie zunächst die Requests-Bibliothek:

pip install requests

Verwenden Sie dann Requests, um eine GET-Anfrage an die Ziel-URL zu senden und den HTML-Inhalt der Webseite abzurufen:

import requests
 
url = "https://en.wikipedia.org/wiki/Python_(programming_language)"
response = requests.get(url)
html_content = response.text

6. Verwenden Sie Beautiful Soup, um Webinhalte zu analysieren.

Installieren Sie Beautiful Soup:

pip install beautifulsoup4

Als nächstes verwenden Sie Beautiful Soup, um Webinhalte zu analysieren und die erforderlichen Daten zu extrahieren: #🎜 🎜#
from bs4 import BeautifulSoup
 
soup = BeautifulSoup(html_content, "html.parser")
 
# 提取标题
title = soup.find("h2", class_="firstHeading").text
 
# 提取段落
paragraphs = soup.find_all("p")
paragraph_texts = [p.text for p in paragraphs]
 
# 打印提取到的数据
print("Title:", title)
print("Paragraphs:", paragraph_texts)
#🎜🎜 #7. Extrahieren Sie die erforderlichen Daten und speichern Sie sie

Speichern Sie die extrahierten Daten in einer Textdatei:

with open("wiki_python.txt", "w", encoding="utf-8") as f:
    f.write(f"Title: {title}\n")
    f.write("Paragraphs:\n")
    for p in paragraph_texts:
        f.write(p)
        f.write("\n")

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Python-Crawler zum Crawlen von Webseitendaten mithilfe von BeautifulSoup und Requests. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen