Heim > Artikel > Backend-Entwicklung > Scrapy in Aktion: Baidu-Nachrichtendaten crawlen
Scrapy in Aktion: Crawlen von Baidu-Nachrichtendaten
Mit der Entwicklung des Internets hat sich der Hauptweg für die Informationsbeschaffung von traditionellen Medien zum Internet verlagert, und die Menschen verlassen sich zunehmend auf das Internet, um Nachrichteninformationen zu erhalten. Für Forscher oder Analysten werden große Datenmengen für Analysen und Recherchen benötigt. Daher wird in diesem Artikel erläutert, wie Sie mit Scrapy Baidu-Nachrichtendaten crawlen.
Scrapy ist ein Open-Source-Python-Crawler-Framework, das Website-Daten schnell und effizient crawlen kann. Scrapy bietet leistungsstarke Funktionen zum Parsen und Crawlen von Webseiten sowie eine gute Skalierbarkeit und ein hohes Maß an Anpassungsmöglichkeiten.
Schritt 1: Scrapy installieren
Bevor Sie beginnen, müssen Sie Scrapy und einige andere Bibliotheken installieren. Die Installation kann mit dem folgenden Befehl abgeschlossen werden:
pip install scrapy pip install requests pip install bs4
Schritt 2: Erstellen Sie ein Scrapy-Projekt
Erstellen Sie ein Scrapy-Projekt mit dem folgenden Befehl:
scrapy startproject baiduNews
Nachdem der Befehl ausgeführt wurde, wird im aktuellen Verzeichnis eine Datei mit dem Namen baiduNews erstellt Verzeichnisordner, der die anfängliche Struktur eines Scrapy-Projekts enthält.
Schritt 3: Spider schreiben
In Scrapy ist Spider ein Prozessor, der zum Crawlen von Webinhalten verwendet wird. Wir müssen einen Spider schreiben, um Daten von der Baidu News-Website zu erhalten. Zuerst müssen wir einen Spiders-Ordner im Projektstammverzeichnis erstellen und darin eine Python-Datei erstellen, die zur Spider-Vorlage passt.
import scrapy class BaiduSpider(scrapy.Spider): name = "baidu" start_urls = [ "http://news.baidu.com/" ] def parse(self, response): pass
Im obigen Code haben wir zuerst die Scrapy-Bibliothek importiert und eine Klasse namens BaiduSpider erstellt. In der Klasse definieren wir eine Variable start_urls, eine Liste mit Baidu News-URLs. Die Parse-Methode ist die Kernfunktion für die Datenerfassung. Hier definieren wir einfach eine leere Funktion. Jetzt müssen wir eine Vorlage definieren, um die Nachrichtendaten abzurufen.
import scrapy from baiduNews.items import BaidunewsItem from bs4 import BeautifulSoup class BaiduSpider(scrapy.Spider): name = "baidu" start_urls = [ "http://news.baidu.com/" ] def parse(self, response): soup = BeautifulSoup(response.body, "html.parser") results = soup.find_all("div", class_="hdline_article_tit") for res in results: item = BaidunewsItem() item["title"] = res.a.string.strip() item["url"] = res.a.get("href").strip() item["source"] = "百度新闻" yield item
Im obigen Code haben wir alle Elemente mit der Klasse hdline_article_tit gefunden, die die Schlagzeilen von Baidu News sind. Anschließend verwenden wir BeautifulSoup, um die Seite zu analysieren und in einer Schleife ein BaidunewsItem-Klassenobjekt zu erstellen. Schließlich geben wir die Daten über die Yield-Anweisung zurück.
Schritt 4: Element definieren
In Scrapy wird Item verwendet, um die erfasste Datenstruktur zu definieren. Wir müssen eine Item-Vorlage in der Datei items.py im Projekt definieren.
import scrapy class BaidunewsItem(scrapy.Item): title = scrapy.Field() url = scrapy.Field() source = scrapy.Field()
Schritt 5: Spider starten und Daten ausgeben
Wir müssen nur den folgenden Befehl ausführen, um Spider zu starten und Daten auszugeben:
scrapy crawl baidu -o baiduNews.csv
Nachdem der Befehl ausgeführt wurde, wird im Projekt eine Datei mit dem Namen baiduNews.csv erstellt Stammverzeichnis Die Datei enthält alle gecrawlten Nachrichtendaten.
Zusammenfassung
Mit Scrapy können wir Baidu-Nachrichtendaten schnell und effizient abrufen und lokal speichern. Scrapy verfügt über eine gute Skalierbarkeit und unterstützt die Ausgabe in mehreren Datenformaten. In diesem Artikel wird nur ein einfaches Anwendungsszenario von Scrapy vorgestellt. Scrapy verfügt jedoch noch über viele leistungsstarke Funktionen, die darauf warten, von uns erkundet zu werden.
Das obige ist der detaillierte Inhalt vonScrapy in Aktion: Baidu-Nachrichtendaten crawlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!