Heim  >  Artikel  >  Backend-Entwicklung  >  Scrapy in Aktion: Baidu-Nachrichtendaten crawlen

Scrapy in Aktion: Baidu-Nachrichtendaten crawlen

WBOY
WBOYOriginal
2023-06-23 08:50:091697Durchsuche

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!

Stellungnahme:
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