Heim > Backend-Entwicklung > Python-Tutorial > Was ist das leistungsstarke Crawler-Framework Scrapy?

Was ist das leistungsstarke Crawler-Framework Scrapy?

爱喝马黛茶的安东尼
Freigeben: 2019-06-05 18:02:55
nach vorne
4198 Leute haben es durchsucht

Webcrawler sind ein Programm oder Skript, das automatisch Informationen im World Wide Web nach bestimmten Regeln crawlt. Sie werden häufig in Internetsuchmaschinen oder anderen ähnlichen Websites verwendet und können automatisch alle Informationen sammeln, auf die sie zugreifen können den Inhalt dieser Seiten. Scrapy ist ein sehr leistungsfähiges Crawler-Framework und ist in Python geschrieben. Werfen wir einen Blick darauf, was Scrapy ist?

Was ist das leistungsstarke Crawler-Framework Scrapy?

1. Erforderliche Kenntnisse

Die erforderlichen Kenntnisse sind: Linux-System + Python-Sprache + Scrapy-Framework + XPath (XML-Pfadsprache) + einige Hilfstools (Browser-Entwicklertools und XPath-Hilfs-Plug-Ins).

Unser Crawler wurde unter Verwendung des Scrapy-Crawler-Frameworks in der Python-Sprache entwickelt und läuft unter Linux. Sie müssen daher die Python-Sprache, das Scrapy-Framework und Grundkenntnisse des Linux-Betriebssystems beherrschen.

Wir müssen XPath verwenden, um das, was wir wollen, aus der Ziel-HTML-Seite zu extrahieren, einschließlich chinesischer Textabsätze und Links zur „nächsten Seite“ usw.

Browser-Entwicklertools sind die wichtigsten Hilfstools zum Schreiben von Crawlern. Mit diesem Tool können Sie das Muster von Seitenlinks analysieren, die Elemente finden, die Sie in der HTML-Seite extrahieren möchten, und dann deren XPath-Ausdrücke zur Verwendung im Crawler-Code extrahieren. Sie können auch den Referrer, das Cookie und andere Informationen anzeigen der Header der Seitenanforderung. Wenn es sich bei dem gecrawlten Ziel um eine dynamische Website handelt, kann das Tool auch die dahinter stehenden JavaScript-Anfragen analysieren.

Das XPath-Hilfs-Plug-in ist ein Plug-in für Chrome und kann auch auf Browsern installiert werden, die auf dem Chrome-Kern basieren. Der XPath-Helfer kann zum Debuggen von XPath-Ausdrücken verwendet werden.

2. Umgebungseinrichtung

Um Scrapy zu installieren, können Sie den pip-Befehl verwenden: pip install Scrapy

Scrapy hat viele verwandte Abhängigkeiten kann während des Installationsvorgangs schwierig sein. Es ist das folgende Problem aufgetreten:

ImportError: Kein Modul mit dem Namen w3lib.http

Lösung: pip install w3lib

ImportError: Kein Modul mit dem Namen „twisted“

Lösung: pip install verdreht

ImportError: Kein Modul namens lxml.HTML

Lösung: pip install lxml

Fehler: libxml/xmlversion.h: Nein solche Datei oder Verzeichnis

Lösung: apt-get install libxml2-dev libxslt-dev

apt-get install Python-lxml

ImportError: Kein Modul namens cssselect

Lösung: p ip install cssselect

ImportError: Kein Modul namens OpenSSL

Lösung: pip install pyOpenSSL

Vorschlag:

Nutzen Sie den einfachen Weg: Installieren Sie mit Anaconda.

3. Scrapy-Framework

1. Einführung in Scrapy

Scrapy ist ein berühmtes Crawler-Framework, geschrieben in Python. Scrapy kann problemlos Web-Scraping durchführen und kann auch problemlos an Ihre eigenen Bedürfnisse angepasst werden.

Die Gesamtstruktur von Scrapy ist ungefähr wie folgt:

Was ist das leistungsstarke Crawler-Framework Scrapy?

2

Scrapy umfasst hauptsächlich die folgenden Komponenten:

Engine (Scrapy)

wird verwendet, um den Datenfluss des gesamten Systems zu verarbeiten und Transaktionen auslösen (Framework-Kern).

Scheduler (Scheduler)

wird verwendet, um Anfragen von der Engine anzunehmen, sie in die Warteschlange zu schieben und zurückzukehren, wenn die Engine erneut anfordert. Man kann sich das so vorstellen a Die Prioritätswarteschlange der URL (die URL oder der Link der gecrawlten Webseite), die die nächste zu crawlende URL bestimmt und doppelte URLs entfernt.

Downloader (Downloader)

wird verwendet, um Webinhalte herunterzuladen und Webinhalte an den Spider zurückzugeben (Scrapy Downloader basiert auf Twisted, einem effizienten asynchronen Modell von).

Spider

Crawler werden hauptsächlich verwendet, um die benötigten Informationen aus bestimmten Webseiten zu extrahieren, bei denen es sich um sogenannte Entitäten (Items) handelt. Benutzer können auch Links daraus extrahieren und Scrapy die nächste Seite weiter crawlen lassen.

Projektpipeline (Pipeline)

ist für die Verarbeitung von Entitäten verantwortlich, die von Crawlern aus Webseiten extrahiert werden. Seine Hauptfunktionen bestehen darin, Entitäten beizubehalten, die Gültigkeit von Entitäten zu überprüfen und Entfernen Sie unnötige Informationen. Wenn die Seite vom Crawler analysiert wird, wird sie an die Projektpipeline gesendet und die Daten werden in mehreren spezifischen Sequenzen verarbeitet.

Downloader-Middlewares

Ein Framework zwischen der Scrapy-Engine und dem Downloader. Es verarbeitet hauptsächlich Anfragen und Anfragen zwischen der Scrapy-Engine und der Downloader-Antwort.

Spider Middlewares

Ein Framework zwischen der Scrapy-Engine und dem Crawler. Seine Hauptaufgabe besteht darin, die Antworteingabe und Anforderungsausgabe des Spiders zu verarbeiten.

Scheduler Middewares

Middleware zwischen der Scrapy-Engine und dem Scheduler, die Anfragen und Antworten von der Scrapy-Engine an den Scheduler sendet.

Scrapy-Laufprozess:

1. Die Engine entnimmt dem Scheduler einen Link (URL) zum anschließenden Crawlen

2 die URL in eine Anfrage (Request) und übergibt sie an den Downloader

3 Der Downloader lädt die Ressource herunter und kapselt sie in ein Antwortpaket (Response)

4

5. Wenn die Entität (Element) analysiert wird, übergeben Sie sie zur weiteren Verarbeitung an die Entitätspipeline.

6. Wenn der Link (URL) analysiert wird, übergeben Sie die URL an den Planer auf das Kriechen warten

Das obige ist der detaillierte Inhalt vonWas ist das leistungsstarke Crawler-Framework Scrapy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage