Schlüsselpunkte des Crawler-Designs

Wenn Sie eine bestimmte Website stapelweise crawlen möchten, müssen Sie selbst ein Crawler-Framework erstellen. Bevor Sie es erstellen, müssen Sie mehrere Aspekte berücksichtigen: Vermeidung der IP-Blockierung, Erkennung von Bildverifizierungscodes, Datenverarbeitung usw.

Die gebräuchlichste Lösung für die IP-Blockierung ist die Verwendung einer Proxy-IP. Der Webcrawler arbeitet mit dem ISPKEY-HTTP-Proxy zusammen, um extrem schnell zu reagieren. Die selbst betriebenen Serverknoten sind über das ganze Land verteilt, was bei der Erfüllung der Crawler-Aufgabe hilfreich sein kann.

Für einen relativ einfachen Bildüberprüfungscode können Sie über die Pytesseract-Bibliothek ein Erkennungsprogramm schreiben. Dieses kann nur einfache Fotoaufnahmedaten erkennen. Für komplexere Verfahren wie Schiebemaus, Schieberegler oder dynamischen Bildverifizierungscode können Sie nur den Kauf einer Codierungsplattform zur Identifizierung in Betracht ziehen.

Wenn bei der Datenverarbeitung festgestellt wird, dass die Daten, die Sie erhalten, gestört sind, besteht die Lösung darin, die Störungsmuster zu identifizieren oder sie über den Quell-JS-Code abzurufen. Verwenden Sie die execjs-Bibliothek von Python oder andere JS-Ausführungsbibliotheken, um die Datenextraktion zu implementieren.


Verteilte Crawler-Lösung

Eine bessere Möglichkeit, das Batch-Crawling von Daten einer großen Site zu erreichen, besteht darin, vier Warteschlangen zu verwalten.

URL-Aufgabenwarteschlange – darin werden die zu erfassenden URL-Daten gespeichert.

Ursprüngliche URL-Warteschlange – speichert die Webseiten, die extrahiert, aber nicht verarbeitet wurden, hauptsächlich um zu prüfen, ob sie gecrawlt werden müssen, ob sie erneut gecrawlt werden müssen usw.

Ursprüngliche Datenwarteschlange – speichert gecrawlte Daten ohne jegliche Verarbeitung.

Sekundäre Datenwarteschlange – speichert die zu speichernden Daten, die den Datenverarbeitungsprozess durchlaufen haben.


Die oben genannten Warteschlangen verfügen über vier Arten von Prozessen zum Überwachen und Ausführen von Aufgaben, nämlich:

Crawler-Erfassungsprozess: Lauschen Sie der URL-Aufgabenwarteschlange, erfassen Sie Webseitendaten und werfen Sie die erfassten Originaldaten in die Originaldatenwarteschlange.

URL-Verarbeitungsprozess: Überwachen Sie die ursprüngliche URL-Warteschlange und filtern Sie abnormale URLs und wiederholt gecrawlte URLs heraus.

Datenextraktionsprozess: Überwachen Sie die ursprüngliche Datenwarteschlange und extrahieren Sie Schlüsseldaten aus der ursprünglichen Datenwarteschlange, einschließlich neuer URLs und Zieldaten.

Datenspeicherprozess: Sortieren Sie die Sekundärdaten und speichern Sie sie in Mongodb.

[email protected]