[Python] Einführung in Crawler

PythonCrawler ist ein gängiges Tool zum Sammeln von Internetdaten und hat sich mit der Entwicklung des Internets in den letzten Jahren rasant weiterentwickelt. Um einen Webcrawler zum Crawlen von Webdaten zu verwenden, müssen Sie zunächst die Netzwerkkonzepte und Hauptklassifizierungen, die Systemstruktur, Betriebsmethoden, allgemeine Strategien und Hauptanwendungsszenarien verschiedener Crawler verstehen. Gleichzeitig müssen Urheberrechts- und Datensicherheitsaspekte berücksichtigt werden , Sie müssen auch die aktuellen Protokolle verstehen, die bezüglich der Rechtmäßigkeit von Crawler-Anwendungen und Crawling-Websites befolgt werden müssen.

Das Konzept des Crawlers

Ein Webcrawler, auch Webspider oder Webroboter genannt, ist ein Computerprogramm oder automatisiertes Skript, das Webseiten automatisch herunterlädt.

Ein Webcrawler kriecht wie eine Spinne durch die Threads von URLs im Internet, lädt die Webseiten herunter, auf die die einzelnen URLs verweisen, und analysiert den Inhalt der Seiten.
Fügen Sie hier eine Bildbeschreibung ein

Das Prinzip des Reptils

1. Universeller Webcrawler

Ein universeller Webcrawler wird auch als Full-Web-Crawler bezeichnet. Seine Crawling-Objekte werden von einem Stapel von Start-URLs auf das gesamte Web erweitert. Dieser Crawlertyp eignet sich besser für die Suche nach einem breiten Themenspektrum für Suchmaschinen und wird hauptsächlich verwendet durch Suchmaschinen oder große Webdienstanbieter. Tiefenstrategie: Besuchen Sie die Weblinks der nächsten Ebene in der Reihenfolge von niedrig nach hoch, bis Sie nicht mehr tiefer gehen können. Breitenorientierte Strategie: Crawlen Sie entsprechend der Tiefe der Ebene des Webinhaltsverzeichnisses und geben Sie dem Crawlen von Seiten mit flacheren Ebenen Vorrang. Wenn alle Seiten in derselben Ebene gecrawlt wurden, fährt der Crawler mit der nächsten Ebene fort.

2. Konzentrieren Sie sich auf Webcrawler

Fokussierte Webcrawler werden auch Topic-Webcrawler genannt. Ihr größtes Merkmal besteht darin, dass sie nur selektiv Seiten crawlen, die sich auf voreingestellte Themen beziehen. Crawling-Strategie basierend auf der Inhaltsbewertung: Bei dieser Strategie werden die vom Benutzer eingegebenen Suchwörter als Thema verwendet, und die Seiten, die die Suchwörter enthalten, werden als Seiten betrachtet, die sich auf das Thema beziehen. Crawling-Strategie basierend auf der Bewertung der Linkstruktur: Diese Strategie verwendet halbstrukturierte Dokument-Webseiten, die viele Strukturinformationen enthalten, um die Bedeutung von Links zu bewerten. Einer der weit verbreiteten Algorithmen ist der PageRank-Algorithmus. Crawling-Strategie basierend auf Reinforcement Learning: Diese Strategie führt Reinforcement Learning in fokussierte Crawler ein, verwendet einen Bayes'schen Klassifikator zur Klassifizierung von Hyperlinks, berechnet die Wichtigkeit jedes Links und bestimmt die Zugriffsreihenfolge der Links entsprechend ihrer Wichtigkeit. Crawling-Strategie basierend auf Kontextdiagramm: Diese Strategie lernt die Korrelation zwischen Webseiten durch die Erstellung eines Kontextdiagramms und berechnet den Abstand von der aktuellen Seite zu verwandten Seiten. Links auf Seiten mit geringerem Abstand werden zuerst besucht.

3. Inkrementeller Webcrawler

Inkrementelle Webcrawler aktualisieren heruntergeladene Webseiten nur inkrementell oder crawlen nur neu generierte und geänderte Webseiten. Lokale Seiten müssen durch einen erneuten Besuch der Webseiten aktualisiert werden, um die lokal gespeicherten zentralisierten Seiten auf dem neuesten Stand zu halten. Häufig verwendete Aktualisierungsmethoden sind wie folgt. Einheitliche Aktualisierungsmethode: Greifen Sie mit der gleichen Häufigkeit auf alle Webseiten zu, unabhängig von der Häufigkeit der Änderungen an der Webseite selbst. Individuelle Aktualisierungsmethode: Bestimmen Sie die Häufigkeit des erneuten Besuchs jeder Seite basierend auf der Häufigkeit von Änderungen an einzelnen Webseiten. Klassifizierungsbasierte Aktualisierungsmethode: Crawler werden entsprechend der Häufigkeit der Webseitenänderungen in Webseitenkategorien mit schnellerer und langsamerer Aktualisierung unterteilt, und es werden unterschiedliche Häufigkeiten für den Besuch dieser beiden Arten von Webseiten festgelegt.

4. Deep-Web-Crawler

Webseiten können je nach Art ihrer Existenz in zwei Kategorien unterteilt werden: Oberflächenseiten und Tiefenseiten. Oberflächenseiten beziehen sich auf Seiten, die von herkömmlichen Suchmaschinen indiziert werden können. Tiefe Seiten sind Webseiten, deren Inhalte größtenteils nicht über statische Links abgerufen werden können. Sie sind hinter dem Suchformular verborgen und erfordern die Eingabe von Schlüsselwörtern durch den Benutzer, bevor sie abgerufen werden können. Der Kernbestandteil des Deep Crawlers ist das Ausfüllen von Formularen, das die folgenden zwei Typen umfasst. Ausfüllen von Formularen basierend auf Domänenwissen: Bei dieser Methode wird im Allgemeinen eine Ontologiebibliothek verwaltet und durch semantische Analyse geeignete Schlüsselwörter zum Ausfüllen des Formulars ausgewählt. Formularausfüllung basierend auf Webseitenstrukturanalyse: Diese Methode verfügt im Allgemeinen über keine oder nur begrenzte Domänenkenntnisse. Sie stellt die HTML-Webseite in Form eines DOM-Baums dar und unterteilt das Formular in ein Einzelattributformular und ein Mehrfachattributformular Formular, die separat verarbeitet und aus ihnen extrahiert werden. Die Werte jedes Felds im Formular.

Die Legalität von Crawlern und dem robot.txt-Protokoll

Die Legalität von Crawlern

Derzeit gestatten die meisten Websites die Verwendung der von Crawlern gecrawlten Daten für den persönlichen Gebrauch oder für wissenschaftliche Forschung. Wenn die gecrawlten Daten jedoch für andere Zwecke, insbesondere für Nachdrucke oder kommerzielle Zwecke, verwendet werden, kann dies zu schwerwiegenden Rechtsverstößen oder zivilrechtlichen Streitigkeiten führen. Die folgenden beiden Arten von Daten können nicht gecrawlt oder gar nicht für kommerzielle Zwecke verwendet werden. Persönliche Datenschutzdaten: wie Name, Mobiltelefonnummer, Alter, Blutgruppe, Familienstand usw. Das Crawlen solcher Daten verstößt gegen das Gesetz zum Schutz personenbezogener Daten. Daten, deren Zugriff durch andere ausdrücklich verboten ist: Beispielsweise haben Benutzer Kontokennwörter und andere Berechtigungskontrollen eingerichtet und Inhalte verschlüsselt. Sie müssen auch auf urheberrechtliche Aspekte achten. Vom Autor signierte, urheberrechtlich geschützte Inhalte dürfen nicht gecrawlt und nachgedruckt oder für kommerzielle Zwecke verwendet werden.

Wenn Sie einen Crawler zum Crawlen von Daten von einer Website verwenden, müssen Sie das vom Websitebesitzer für alle Crawler festgelegte Protokoll einhalten, nämlich das robot.txt-Protokoll.

Diese Vereinbarung wird normalerweise im Stammverzeichnis der Website gespeichert und legt fest, welche Inhalte dieser Website von Crawlern abgerufen werden können und welche Webseiten von Crawlern nicht abgerufen werden dürfen.

Zweck und Mittel des Website-Crawling-Schutzes

1. Anti-Crawling durch User-Agent-Überprüfung

Wenn der Browser eine Anfrage sendet, hängt er einige Parameter des Browsers und der aktuellen Systemumgebung an den Server an, und der Server unterscheidet verschiedene Browser anhand des Werts von User-Agent.

2. Anti-Crawling basierend auf der Zugriffshäufigkeit

Die Geschwindigkeit normaler Benutzer, die über Browser auf Websites zugreifen, ist viel langsamer als die von Crawlern. Daher verwenden viele Websites dies, um einen Schwellenwert für die Zugriffshäufigkeit festzulegen. Wenn die Zugriffshäufigkeit einer IP pro Zeiteinheit den voreingestellten Schwellenwert überschreitet, gelten Zugriffsbeschränkungen diesem IP auferlegt. Normalerweise ist ein Verifizierungscode erforderlich, bevor der normale Zugriff fortgesetzt werden kann. In schwerwiegenden Fällen kann es sogar sein, dass der IP den Zugriff auf die Website für einen bestimmten Zeitraum sperrt.

3. Anti-Crawling durch Überprüfung des Bestätigungscodes

Auf einigen Websites müssen Besucher unabhängig von der Häufigkeit der Besuche einen Bestätigungscode eingeben, um den Betrieb fortzusetzen. Auf der Website 12306 müssen Sie beispielsweise unabhängig von der Zugriffshäufigkeit den Bestätigungscode verifizieren, unabhängig davon, ob Sie sich anmelden oder Tickets kaufen.

4. Anti-Crawling durch Ändern der Webseitenstruktur

Einige Social-Networking-Sites ändern häufig die Webseitenstruktur, und Crawler müssen in den meisten Fällen die erforderlichen Daten durch die Webseitenstruktur analysieren, sodass dieser Ansatz auch eine Anti-Crawler-Rolle spielen kann. Nach einer Änderung der Webseitenstruktur können Crawler den ursprünglich benötigten Inhalt häufig nicht am ursprünglichen Speicherort der Webseite finden.

5. Anti-Crawling durch Kontoberechtigungen

Einige Websites erfordern eine Anmeldung, um den Betrieb fortzusetzen. Obwohl diese Websites zum Zweck des Anti-Crawlers keine Anmeldevorgänge erfordern, spielen sie dennoch eine Anti-Crawler-Rolle. Um beispielsweise Kommentare zu Weibo anzuzeigen, müssen Sie sich anmelden.

Entwicklung einer Crawling-Strategie

Für die zuvor vorgestellten gängigen Anti-Crawler-Methoden können die entsprechenden Crawling-Strategien wie folgt formuliert werden. Simulierten User-Agent senden: Bestehen Sie den Test, indem Sie einen simulierten User-Agent senden, der den User-Agent-Wert der an den Website-Server zu sendenden Anforderung als den User-Agent-Wert tarnt, den normale Benutzer zum Anmelden auf der Website verwenden. Passen Sie die Zugriffsfrequenz an: Testen Sie den Schwellenwert für die Zugriffsfrequenz der Website über die Backup-IP und stellen Sie dann die Zugriffsfrequenz etwas niedriger als den Schwellenwert ein. Diese Methode kann nicht nur die Stabilität des Kriechens gewährleisten, sondern auch verhindern, dass die Effizienz zu niedrig wird. Bestehen Sie die Überprüfung des Bestätigungscodes: Verwenden Sie einen IP-Proxy, um die Crawler-IP zu ändern. Identifizieren Sie den Bestätigungscode mithilfe des Algorithmus. Verwenden Sie Cookies, um den Bestätigungscode zu umgehen. Reagieren Sie auf Änderungen der Website-Struktur: Wenn Sie nur einmal crawlen, crawlen Sie alle erforderlichen Daten, bevor Sie die Website-Struktur anpassen. Verwenden Sie Skripte, um die Website-Struktur zu überwachen. Wenn sich die Struktur ändert, geben Sie einen Alarm aus und stoppen Sie den Crawler rechtzeitig. Einschränkung durch Kontoberechtigungen: Umgehung durch simulierte Anmeldung, die häufig auch das Bestehen der Verifizierung durch einen Verifizierungscode erfordert. Vermeidung durch Proxy-IP: Durch Ändern der IP-Adresse durch einen Proxy kann die Website-Erkennung effektiv vermieden werden. Es ist zu beachten, dass der öffentliche IP-Proxy-Pool das wichtigste Überwachungsziel der Website ist.

Technische Reserven zu Python

Hier möchte ich einige kostenlose Kurse mit Ihnen teilen, die jeder lernen kann. Unten finden Sie Screenshots der Kurse. Scannen Sie den QR-Code unten, um sie alle zu erhalten.
Wenn Das Bild ist ungültig, klicken Sie auf Sie können zur blauen Schriftart springen~Klicken Sie hier

1. Python-Lernrouten in alle Richtungen

Fügen Sie hier eine Bildbeschreibung ein

2. Lernsoftware

Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen. Die häufig verwendete Entwicklungssoftware zum Erlernen von Python ist hier und spart allen viel Zeit.
Fügen Sie hier eine Bildbeschreibung ein

3. Lernmaterialien

Fügen Sie hier eine Bildbeschreibung ein

4. Praktische Informationen

Die Praxis ist das einzige Kriterium, um die Wahrheit zu prüfen. Die hier komprimierten Pakete können Ihnen dabei helfen, Ihre persönlichen Fähigkeiten in Ihrer Freizeit zu verbessern.
Fügen Sie hier eine Bildbeschreibung ein

5. Videokurse

Fügen Sie hier eine Bildbeschreibung ein

Nun, der heutige Austausch endet hier. Glückliche Zeit ist immer kurz. Freunde, die mehr Kurse lernen möchten, keine Sorge, es gibt noch mehr Überraschungen~Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/bagell/article/details/132915913
Empfohlen
Rangfolge