Hallo. Dieser Artikel ist MYJLab Adventskalender Tag 16. Es sind zwei Tage hintereinander vergangen, daher bin ich etwas außer Atem, aber ich würde gerne mein Bestes geben, um mein Empfehlungstool zu unterrichten. Im vorherigen Artikel habe ich die Analyseumgebung Einführung von Jupyter Lab erstellt. Es ist ein wirklich gutes Werkzeug, also benutze es bitte. Heute möchte ich die für die Datenerfassung verwendeten Tools vorstellen, bevor ich mit der Analyse beginne.
Wie sammeln Sie Daten, wenn Sie Daten durch maschinelles Lernen usw. sammeln? Wenn Sie es selbst entwickeln, können Sie die Daten nicht kaufen, aber Sie können sie nicht von Grund auf neu erstellen. In meinem Fall versuche ich, wenn ich ein Problem mit den Daten habe, diese vorerst zu kratzen. [Scraping](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B9%E3%82%AF%E3%83 % AC% E3% 82% A4% E3% 83% 94% E3% 83% B3% E3% 82% B0) ist eine Technologie, die die erforderlichen Informationen von einer Webseite extrahiert. Krabbeln ist eine ähnliche Technik, aber der Unterschied zwischen Schaben und Krabbeln variiert von Person zu Person. In diesem Artikel klassifizieren wir sie wie folgt.
Normalerweise werden Crawlen und Scraping zusammen durchgeführt, da die Informationen, die Sie extrahieren möchten, nicht auf einer Webseite vollständig sind. Angenommen, Sie möchten Yahoo News-Daten sammeln, um falsche Nachrichten in der Markov-Kette zu erstellen. Yahoo News-Seiten können in zwei Hauptseiten unterteilt werden.
Wenn Sie alle Nachrichten sammeln möchten, gehen Sie wie folgt vor.
Durch Ausführen dieses Vorgangs können Sie die Informationen der gewünschten Nachrichten abrufen. Wenn diese Aufgaben jedoch in Code umgewandelt werden, produziere ich, ein kleiner Fischingenieur, in der Mitte unlesbaren Code. Und das ist nicht das Einzige, worauf Sie beim Crawlen achten müssen.
Ich bin kein Ingenieur, der Code ordentlich schreiben kann, während er sich dieser Dinge bewusst ist. Dieses Problem kann jedoch leicht mit ** Scrapy ** gelöst werden.
Scrapy ist ein Framework für das Web-Crawlen und Web-Scraping in Python. Es ist ein großartiger Typ, der alles von der Überwachung bis zum automatisierten Testen kann. Es erledigt die mühsame Verarbeitung des Kriechens und Kratzens wie oben erwähnt. Darüber hinaus wird automatisch eine Codevorlage zum Scraping erstellt, sodass Sie einen einheitlichen (?) Code schreiben können.
Um ehrlich zu sein, ist der schnellste Weg, Scrapy zu verwenden, ein Blick auf Tutorial. Ich werde es also weglassen. Hier möchte ich mein Bestes geben, um den Mechanismus von Scrapy zu erklären, der persönlich schwer zu verstehen war. Scrapy arbeitet mit dem folgenden Mechanismus.
Ich denke, diese Zahl ist etwas schwer zu verstehen, deshalb werde ich mein Bestes geben, um sie zu erklären. Scrapy besteht hauptsächlich aus 6 Teilen.
Engine Die Engine ist für die Steuerung des Scrapy-Datenflusses verantwortlich. Scrapy ist in Twisted geschrieben, einem ereignisgesteuerten Netzwerkprogrammierungsframework. Die Engine löst ein Ereignis aus, wenn eine bestimmte Aktion ausgeführt wird.
Scheduler Scheduler ist ein Teil, der von der Engine empfangene Anforderungen speichert und das Timing steuert. In der obigen Abbildung ist ②③⑧ die Arbeit des Schedulers.
Downloader Downloader hat die Aufgabe, die Webseite abzurufen und über die Engine an Spider weiterzuleiten. Der Zugriff auf die Website erfolgt immer über diesen Downloader.
Spider Spider ist ein Teil, den Entwickler hauptsächlich ändern und der Elemente extrahiert und speichert. Scrapy verwaltet Daten in Einheiten, die als Elemente bezeichnet werden. Wenn Sie ein Objekt in Spider zurückgeben, wird die Datenspeicherung gestartet. Wenn Sie ein Anforderungsobjekt zurückgeben, wird es erneut gecrawlt.
Item pipeline Die Item-Pipeline ist für die Verarbeitung der von Spider extrahierten Items verantwortlich. Es ist die Aufgabe der Item-Pipeline, Elemente in MySQL zu speichern und zu bereinigen.
Middleware Middleware ist der Teil, der sich zwischen den Interaktionen zwischen den einzelnen Teilen befindet (der dunkelblaue Teil in der obigen Abbildung). Es gibt zwei Arten von Middleware: Download Middleware und Spider Middleware, und jede hat eine andere Rolle.
Es ist ein unorganisierter Artikel geworden, aber ich hoffe, Sie können Scrapy irgendwie fühlen. Es gibt viele andere nützliche Funktionen in Scrapy. Wenn Sie also interessiert sind, probieren Sie es bitte aus.