Dinge, die Sie bei der Entwicklung von Crawlern in Python beachten sollten

Crawler-Eigenschaften

Crawler mit Zustand

HTTP ist ein zustandslos entwickeltes Protokoll Wenn Sie einen Status haben möchten, verwenden Sie ein Cookie. Es ist nicht immer erforderlich, das Senden und Empfangen von Cookies durch Erstellen eines Crawlers zu implementieren. Verwenden Sie das Sitzungsobjekt der Anforderungsbibliothek. Der Zustand kann auch durch Referer ausgedrückt werden.

Wird zum Implementieren der Anmeldung usw. verwendet.

Crawler interpretiert JavaScript

SPA usw. enthalten keine Inhalte in HTML. In diesem Fall muss JavaScript interpretiert werden.

Usw. sind als automatische Bedienwerkzeuge erhältlich.

Crawler für eine nicht spezifizierte Anzahl von Websites

Google Bot etc.

Es gibt diese drei Merkmale, aber Sie sollten die folgenden Punkte unabhängig vom Crawler-Muster kennen.

Seien Sie vorsichtig, wenn Sie die gesammelten Daten verwenden

Hinweise zur Kriechlast

robots.txt Robots.txt- und Robots-Meta-Tags werden häufig verwendet, um Website-Administratoren anzuweisen, eine bestimmte Seite nicht zu crawlen.

robots.txt: Eine Textdatei im obersten Verzeichnis der Website Roboter-Meta-Tag: Enthält Anweisungen für den Crawler.

Sie können Informationen zu robots.txt mithilfe einer Python-Bibliothek namens urllib.robotparser abrufen.

XML-Site-Map

Eine XML-Datei, in der Website-Administratoren eine Liste der URLs anzeigen können, die der Crawler crawlen soll.

Das Crawlen mit Bezug auf die XML-Site-Map ist effizient, da Sie nur die Seiten crawlen müssen, die gecrawlt werden müssen.

Klärung der Kontaktinformationen

Geben Sie eine beliebige Zeichenfolge in den User-Agent-Header ein, um darauf zuzugreifen.

Statuscode und Fehlerbehandlung

Durch Ändern der Fehlerverarbeitung in Abhängigkeit vom Statuscode ist es möglich, eine Verarbeitung durchzuführen, z. B. einen erneuten Versuch im Falle eines Netzwerkfehlers (z. B. keine Verbindung herstellen zu können).

Recommended Posts

Dinge, die Sie bei der Entwicklung von Crawlern in Python beachten sollten
Dinge, die Sie beim Kopieren von Python-Listen beachten sollten
Dinge, die Sie bei der Verarbeitung von Zeichenfolgen in Python2 beachten sollten
Dinge, die Sie bei der Verarbeitung von Zeichenfolgen in Python 3 beachten sollten
Vorsichtsmaßnahmen bei der Verwendung von Python mit AtCoder
Dinge, die Sie bei der Verwendung von CGI mit Python beachten sollten.
Dinge, die Sie bei der Verwendung von Python beachten sollten, wenn Sie MATLAB verwenden
Beachten Sie Folgendes, wenn Sie automatisierte Tools für die Werkstatt in Python erstellen
Beachten Sie Folgendes, wenn Sie Keras auf Ihrem Mac bereitstellen
Beachten Sie Folgendes, wenn Sie mit ndarray einen Zeilenvektor in einen Spaltenvektor konvertieren
Beachten Sie beim Initialisieren einer Liste in Python
Dinge, die Sie bei der Stapelvorhersage mit der GCP ML Engine beachten sollten
Zusammenfassung der Punkte, die beim Schreiben eines Programms zu beachten sind, das unter Python 2.5 ausgeführt wird
Fehler beim Versuch, psycopg2 in Python zu installieren
Beenden bei Verwendung von Python in Terminal (Mac)
Dinge zu tun, wenn Sie anfangen, sich mit Django zu entwickeln
Ich möchte am Ende etwas mit Python machen
So löschen Sie stdout in Python
Melden Sie sich auf der Website in Python an
Achtung bei os.mkdir in Python
Sprechen mit Python [Text zu Sprache]
Wie man in Python entwickelt
Post an Slack in Python
Praktische Schreibmethode beim kontinuierlichen Anhängen an die Liste in Python
Was tun, wenn in Python "SSL: CERTIFICATE_VERIFY_FAILED _ssl.c: 1056" angezeigt wird?
[Unterprozess] Wenn Sie ein anderes Python-Programm in Python-Code ausführen möchten
Wie man Japanern nicht entgeht, wenn man mit json in Python umgeht
[Python] Wie man PCA mit Python macht
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Dinge, die Sie beim Benennen des dynamischen Routings in nuxt.js beachten sollten
Konvertieren Sie Markdown in Python in PDF
So sammeln Sie Bilder in Python
Verhalten beim Auflisten in Python heapq
Verwendung von SQLite in Python
Vorsichtsmaßnahmen beim Ausführen von Python unter EC2 über AWS Lambda (Befehl ausführen)
Im Python-Befehl zeigt Python auf Python3.8
Zeitzonenspezifikation beim Konvertieren einer Zeichenfolge in einen Datums- / Uhrzeittyp mit Python
[Python] Wenn Sie alle Variablen in einer anderen Datei verwenden möchten
Versuchen Sie, Trace in Python zu berechnen
Vorsichtsmaßnahmen beim Übergeben von def an sortierte und gruppierte Funktionen in Python? ??
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
6 Möglichkeiten zum Stringen von Objekten in Python
Verwendung von PubChem mit Python
Artikel zum Lesen, wenn Blenders Python-Skriptcode in 2.80 nicht funktioniert
Was tun, wenn ModuleNotFoundError: In Python tritt kein Modul mit dem Namen 'XXX' auf
Vorsichtsmaßnahmen beim Festlegen von Standardwerten für Argumente in Python-Funktionsdefinitionen
Umgang mit Japanisch mit Python
Eine Alternative zu "Pause" in Python
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Bei Verwendung regulärer Ausdrücke in Python
Beim Schreiben eines Programms in Python
Dinge, auf die Sie beim Erstellen einer Python-Umgebung auf einem Mac achten sollten
So blenden Sie die Eingabeaufforderung aus, wenn Sie Python in Visual Studio 2015 ausführen
So schreiben Sie eine Zeichenfolge, wenn Python mehrere Zeilen enthält
Wenn Sie mehrere Schlüssel in Python-Sortierung angeben
Ich habe versucht, PLSA in Python zu implementieren
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Versuchen Sie, sich mit Python bei qiita anzumelden
Installieren Sie Pyaudio, um Wellen in Python zu spielen