Heim  >  Artikel  >  Backend-Entwicklung  >  So identifizieren Sie den Python-Crawler

So identifizieren Sie den Python-Crawler

silencement
silencementOriginal
2019-05-22 18:03:225078Durchsuche

So identifizieren Sie den Python-Crawler

1. Geben Sie den Bestätigungscode ein

Diese Art von Bestätigungscode wird hauptsächlich weitergegeben Der Benutzer gibt zur Überprüfung die Buchstaben, Zahlen, chinesischen Schriftzeichen usw. in das Bild ein. Wie unten gezeigt

So identifizieren Sie den Python-Crawler


Lösung: Dies ist die einfachste, solange Sie sich identifizieren Geben Sie den Inhalt in das Eingabefeld ein. Diese Erkennungstechnologie heißt OCR. Hier empfehlen wir die Verwendung der Drittanbieter-Bibliothek tesserocr. Für den Verifizierungscode ohne Hintergrundeinfluss, wie in Abbildung 2 dargestellt, können Sie ihn direkt über diese Bibliothek identifizieren. Bei Verifizierungscodes mit verrauschtem Hintergrund ist die direkte Erkennungsrate jedoch sehr niedrig. Wenn wir auf eine solche Situation stoßen, müssen wir das Bild zuerst verarbeiten, das Bild zuerst in Graustufen umwandeln und es dann binärisieren und dann erkennen Die Erkennungsrate wird erheblich verbessert.

2. Verschiebbarer Bestätigungscode

So identifizieren Sie den Python-Crawler

Lösung: Diese Art von Verifizierungscode ist etwas komplizierter, es gibt aber entsprechende Methoden. Wir denken direkt daran, das Verhalten einer Person zu simulieren, die den Bestätigungscode zieht, auf die Schaltfläche klickt, dann die Position der Lücke anzeigt und schließlich das Puzzle an die Lückenposition zieht, um die Überprüfung abzuschließen.

Schritt 1: Klicken Sie auf die Schaltfläche. Dann haben wir festgestellt, dass die Lücke und das Rätsel nicht angezeigt wurden, wenn Sie nicht auf die Schaltfläche geklickt haben, sondern erst, nachdem Sie darauf geklickt haben. Dies gab uns die Inspiration, die Position der Lücke zu finden.

Schritt 2: Ziehen Sie zur Lückenposition. Wir wissen, dass das Puzzle bis zur Lücke gezogen werden sollte, aber wird dieser Abstand in Zahlenwerten ausgedrückt? Durch das Phänomen, das wir im ersten Schritt beobachtet haben, können wir den Ort der Lücke ermitteln. Hier können wir die Pixel der beiden Bilder vergleichen und einen Benchmark-Wert festlegen. Wenn der Unterschied an einer bestimmten Position den Benchmark-Wert überschreitet, haben wir natürlich die unterschiedlichen Positionen der beiden Bilder gefunden Beginnen Sie das Rätsel von der Seite und gehen Sie von links nach rechts, bis Sie die erste andere Position gefunden haben. Diese Position sollte sich links von der Lücke befinden, sodass wir Selenium verwenden können, um an diese Position zu ziehen. Eine weitere Frage hier ist, wie diese beiden Bilder automatisch gespeichert werden. Hier können wir zuerst das Etikett finden, dann seine Position und Größe ermitteln, dann oben, unten, links, rechts = Standort['y'], Standort['y']+Größe['Höhe']+ Standort['x ​​' ] + size['width'] , dann einen Screenshot machen und schließlich das Bild ausschneiden und diese vier Positionen ausfüllen. Für eine bestimmte Verwendung können Sie die Selenium-Dokumentation anzeigen. Schneiden Sie ein Bild aus, bevor Sie auf die Schaltfläche klicken, und schneiden Sie dann ein Bild aus, nachdem Sie auf die Schaltfläche geklickt haben. Beim Ziehen am Ende müssen Sie menschliches Verhalten simulieren, indem Sie zuerst beschleunigen und dann abbremsen. Da diese Art von Verifizierungscode über eine Erkennung von Verhaltensmerkmalen verfügt, ist es für eine Person unmöglich, eine konstante Geschwindigkeit beizubehalten, da sie sonst als Schleppen einer Maschine beurteilt wird und die Verifizierung nicht besteht.

Verwandte Lernempfehlungen: Python-Tutorial

Das obige ist der detaillierte Inhalt vonSo identifizieren Sie den Python-Crawler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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