Python Reptil Hinweis: eine einzelne Seite Crawling

Vorwort

Lernen Dinge Python ist auch eine Crawler - Technologie eine viel Übung erfordert, weil nicht alle Websites auf dem Reptil freundlich sind, mehr einer Situation ist die Seite , die Reptilien zu begrenzen hatte die Auswirkungen auf den Zugang auf die Website unter der Prämisse der Benutzererfahrung so gering wie möglich gewisse Einschränkungen, ist die häufigste die Verifizierungscode - Nummer und die Registrierung Login - Seite erscheint Website - Domain.
Bild
12306 Bestätigungscode erlitt einen langen Zeitraum für seine anfängliche Komplexität kritisiert die interaktive Benutzererfahrung betroffen, aber warum nicht wählen zu 12.306 und die User Experience Code aufgeben?

Da ist der Code wie ein Schwellenwert ist, nicht die Menschen es in erster Linie richtet, sondern kann schädliches Computerprogramm enthält.

12306 Oberfläche so genannte Meister der stärksten technischen Entwicklung und Wartung, Druck auf dem Server läuft es fast jeden Tag gleichwertig sind 2-11, der Betriebsdruck während der Stoßzeiten und sogar weit mehr als die 2-11 zehnmal.

Dies ist nur der Service-Site zur Verfügung stellen müssen, die Bedeutung der Stabilität in einem gewissen Ausmaß größer ist als die User Experience, wenn kein Code ist, kann das Programm leicht ausführen Login, Registrierung und andere Operationen.

Ich mag zu greifen Stimmen für automatische Software in dem Artikel erwähnt, je höher die Frequenz des Auffrischzugriff, Druck auf dem 12306-Server sein. 12306 kann nicht aufgelöst werden, bevor der Bildschirm nicht eine Person am Ende sitzen, können wir nur nehmen Sie die einfachste und rohe CAPTCHA-Methode: Bestätigungs-Code.

Wegziehen, aber eine der anti-Reptilien bedeutet dies ist unsere Follow-up-Begegnung.

Da es sich um ein Reptil, natürlich ist, muss zunächst die Zielstelle bestätigen, empfohlen hier ein Reptil denke ich , sehr gute Praxis - Website: vergoldet Himmel
Bild

Die Website-Listen von leicht bis schwer Herausforderungen 8 anti-Reptil, sprechen über heute ist eine der grundlegenden 1: eine einzelne Seite kriechenden und berechnet die Daten und Daten
Bild

Analyse von Seitenelementen

Drücken Sie f12 bringen die Entwickler - Tools bis wir brauchen eine Datenoperation auszuwählen, anzumerken , dass wir die Daten in HTML - Datei in gekennzeichnet aufnehmen müssen ,
Bild
dass es eine Zahl in Spalte-md-1 div genannt, ist diese Funktion nach uns Datenextraktion liefert eine Basis.
Einige Partner können nicht HTML - Code , kleine, kurze Erwähnung hier einige der Funktionen der HTML - Syntax verstehen:

  • Tags kommt typischerweise in Paaren und werden verwendet, sie zu schließen (und wir sprechen in den vorherigen Codeblöcken Python ähnliche Elemente müssen die Position der Start- und End-löschen)
  • Tags können in der Regel genannt werden (Klasse in diesem Fall definiert Namen in einer Weise, ähnlich wie auch id, wirkt wie ein 50-teiligen Prüfungsarbeiten als Subjekt, sondern nur Ihren Namen schreiben, dass Sie Papiere angesehen , aber auch spezifische Daten zum Ziel)
  • HTML-Code, verschiedene Etiketten haben unterschiedliche Definitionen von SchlüsselwörternBild
  • javaScript HTML und CSS können in den Code eingebettet werden, können sie auch von außen eingeführt werden Bild-Linie wird direkt in der aktuellen HTML - Datei geschrieben
  • HTML, CSS, Javascript, können Standard-Code direkt betrachtet werden, so sensible Vorgänge in einer externen js-Datei (in html die sensible Information geschrieben nicht funktioniert) nicht schreiben
  • html 分 Kopf, Körper
  • Unterschiedliche Etiketten können unterschiedliche Eigenschaften

Der Inhalt muss noch sorgfältig in dieser Serie von Artikeln zu dem grundlegenden Fragen befassen wird die Grundlage für die Richtung der html beschrieben nicht sein.

Programm Realisierung

Serie mit unterschiedlicher Basis, um die Wünsche des Eigentümer zu respektieren, sondern auch, damit wir besser Praxis beginnen, um den Artikel zu dem glidedsky bezogen wird, wird die gesamten Code nicht geben, sondern versuchen, über Technologie und einen Teil des Codes eindeutig beteiligt zu sprechen.

Python Seite Text erhalten

Web Access Points GET / POST / DELETE / PUT / OPTION verschiedene Arten, die am häufigsten verwendeten sind GET und POST-Requests.

erhalten Anfragen alle Parameter und Eigenschaften der Daten in der URL-Link angezeigt werden, verwendet wird, um acquire Daten, spielt es keine Operationen an den Daten selbst durchführen, so dass wir Verfahren Reptilien angetroffen mehr schreiben oder Anfrage erhalten.

POST-Anforderung wird in erster Linie für eingehende Daten an den Server verwendet, die POST-Anforderung auf einer Browserseite nicht angezeigt wird, muss es die Homepage-Tool.

f12 Chrome - Browser - Entwickler - Tools können die Post - Anforderung anzuzeigen und sein Inhalt
Bild
burpsuite Capture verwendet , kann auch auf das POST - Datenpaket erhalten
Bild

Normalerweise besteht aus einem Anforderungspaket Header-Anfrage und die Anforderung Körpern, in diesem Anforderungspaket, andere Daten als die Daten bilden POST-Anfrage-Header ist. Es ist vor allem im Inneren Daten und Server-Interaktion, die Überprüfung Datenquellen und Anmeldeinformationen verwendet.

Der erste markiert ist blau Rahmenpakettyp für die Post, die Dateinamen eines Parameters , die Anforderung zu verarbeiten.
Dann unter der gelben Box haben müssen mehr Attribute zu verwenden , wenn Reptil Schreiben, alle grundlegenden Informationen im Namen der User-Agent - Informationen Zugriffsgerätes und Browser.

Cookie, Erhaltung dieser Attributinformationen kann zu einem Zertifikat entsprechen, erhalten Sie ein Cookie jemand auf dieser Seite kann ohne zu wissen, das Passwort in Ihrem Konto angemeldet eingeben.

Es gibt viele Möglichkeiten für den Zugriff auf Webseiten in Python zu erreichen, ziehe ich es vor Gebrauch requrests diese Bibliothek.

Füllen Sie die Anfrage mit der Methode get Anfragen erhalten
Bild
Hinweis: Wenn Sie diesen Fehler melden:
Bild
es bedeutet , dass Ihr Computer - Anfragen Bibliothek nicht installiert ist, verwenden Sie die Befehlszeile pip install requestsBefehl installiert werden kann.

Sie können das Programm sehen erfolgreich den Quellcode der Seite zurück, aber bei genauerem Hinsehen feststellen, dass Python mit der Quellcode enthält nicht die Daten zu erhalten, die wir wollen.

Dies liegt daran , die Website beschränkt worden sind, erst , nachdem Sie Sie sich angemeldet haben, die Daten sehen können, so dass wir in einer Anfrage Cookie kann setzen müssen.
Bild
Drücken Sie f12, klicken Sie auf das Netzwerk Netzwerkoptionen, finden die Hauptantrag Seite, wird der Inhalt des Cookies kopieren alles auf.

fordert die get () Methode ermöglicht es uns, einen Header-Parameter übergeben

Bild

Erfolgreich die Zieldaten erworben

Die Verarbeitung der erfassten Textdaten

Als nächstes wird die erste unter den Management - Ideen:
Ziel: extrahieren Sie alle Zahlen und Summen
nun abgeschlossen: den ganzen Text zu bekommen
nächste , was zu tun ist :

  1. Alle Werte extrahiert
  2. Diese Endwerte

Wirklich so einfach ist, Sie wollen genau aus einer solchen Langtext-Wert zu erhalten, müssen wir zwei Bibliotheken verwenden: BeautifulSoup und re

BeautifulSoup sind externe Bibliotheken, verwenden Sie die Befehlszeile pip install BeautifulSoup4für die Installation.

Einführung von Methoden:

from bs4 import BeautifulSoup

re ist die Unterstützung für reguläre Ausdrücke Bibliotheken, Python kommt, sondern müssen auch die Verwendung von Import einzuführen

Schöne Suppe ist eine Python-Bibliothek können Daten aus HTML- oder XML-Datei extrahieren. Es ermöglicht die Navigation in Dokumenten über Ihren bevorzugten konventionellen Wandler, suchen, ändern die Art und Weise ein Dokument.

Dies ist die offizielle Erklärung, populärer Punkt, dass es Ihnen leichter, die Daten extrahieren kann helfen.

Reguläre Ausdrücke werden verwendet, um die Kenndaten entsprechen ein bestimmtes Muster aufweisen, die die Anzahl der verschiedenen Zeichen repräsentieren Daten definiert.

Während die durchschnittliche Person wirklich viel Chance von regulären Ausdrücken des Körpers sehen, aber sicherlich verwendet haben.

Wenn zum Beispiel einer Website registrieren, werden Sie gefragt, in E-Mail und Telefonnummer zu füllen, wird das Programm zuerst von regulären Ausdrücken Sie E-Mails und Handy-Nummer im richtigen Format eingeben bestimmt.
Bild

Die gleiche Syntax für reguläre Ausdrücke ist komplexer, aber sehr effektiv, sehr zu empfehlen Lernen.

: Empfohlene Lektüre dieses Artikels reguläre Ausdrücke lernen 30 Minuten Erste reguläre Ausdrücke

Sobald Sie die Rolle dieser beiden Bibliotheken verstehen können wir damit beginnen, sie zu nutzen.

Die erste BeautifulSoup über den Zugang zu Web-Content-Verarbeitung zu verwenden,

soup = BeautifulSoup(html,'html.parser')

Um den Inhalt aller Klasse zu extrahieren = div col-md-1 in der Datenverarbeitung

nums = soup.find_all('div',class_='col-md-1')

Dies ist unsere Daten werden:
Bild
Beachten Sie, dass ich die Details hier eingekreist, das zeigt , dass, nachdem die verarbeiteten Daten in einer Liste gespeichert.

Dann gibt es die Notwendigkeit, zusätzlich zu den numerischen Zeichen zu sein, alle entfernt

x = re.findall(r'\d\d\d',str(nums),re.DOTALL)

Da der regulären Ausdruck gegen einen String, so müssen wir nur str Methode zu erhalten, um einen String-Datentyp zu umwandeln, den ersten Parameter der Methode, der findall dreistellig passende regulären Ausdruck ist, re.DOTALL Darstellung passt auf alle Zeichen inklusive Zeilenumbrüche und andere Sonderzeichen.

Das Verfahren zum Wieder findAll Modul und das Modul BeautifulSoup find_all Methode ist völlig anders.

Bild

Python re Modul von offiziellen Dokumenten in der detaillierten Liste der Verwendung jeder Methode und einige einfache Kenntnisse regulären Ausdruck.

An diesem Punkt haben wir alle den Wert übereinstimmt aus
Bild

Dann können Sie für Schleife Traverse durch die Liste der Index zu verwenden, und die Daten akkumulierte Summe, ist dieser Teil des Codes ist nicht gegeben.

Um zu versuchen, können drei Zeilen Code gelöst werden.

Darüber hinaus kann die Tatsache BeautifulSoup und wieder ein Modul Screening Daten ergänzt werden, den Grund, ich bin nutzlos, weil ich faul war.

Schließlich werden die endgültigen Betriebsergebnisse

Bild

Bild

Ich denke du magst

Origin www.cnblogs.com/pr1s0n/p/12540088.html
Empfohlen
Rangfolge