[PYTHON] Ich habe versucht, die Informationen der ASPX-Site, die mit Selenium IDE ausgelagert wird, so programmlos wie möglich abzurufen

Da es auf einer normalen Site viele Stellen gibt, an denen Sie Informationen mithilfe von HTML-Parametern abrufen können, verwenden Sie die Selenium IDE, eine Erweiterung von Firefix. Sie können Informationen einfach erhalten, indem Sie sie verwenden. Aspx-Sites enthalten jedoch Informationen in der Quelle, und es ist nicht möglich, Informationen nur mit den HTML-Parametern abzurufen. Also habe ich mich entschlossen, für (!) Aspx-Sites nicht zu stürzen, indem ich ein wenig mit der Quelle gespielt habe.

Ausführungsumgebung

Mac OS Sierra wird als Ausführungsumgebung angenommen.

Vorbereitung

Führen Sie den folgenden Befehl vom Terminal aus.

  1. pip install selenium bs4
  2. brew install geckodriver

Generieren der zugrunde liegenden Quelle

Hier verwenden wir die Selenium IDE. Notieren Sie das sich wiederholende Verhalten, das an der Site erwartet wird, die Sie mit Selenium IDE erhalten möchten. Dann wird der Befehl in der Tabelle angezeigt.

Wenn Sie den Befehl bestätigen können Wählen Sie hier die Sprache aus, die Sie exportieren und exportieren möchten. Die Quelle zu diesem Zeitpunkt wird angezeigt. Nach dem Speichern mit python2 / unittest / webdriver, wenn Sie die Quelle öffnen,

	def test_<Titel gespeichert>(self):

Ich denke, dass es einen Teil gibt, aber hier wird die eigentliche Verarbeitung durchgeführt.

Erstellen eines iterativen Prozesses

Es gibt einige iterative Prozesse im Fall von Python, aber im Grunde möchte ich die Seiten 1 bis 30 wiederholen, also verwende ich den Bereich. Wenn der Teil, den Sie wiederholen möchten, wie folgt lautet

-        driver.find_element_by_link_text("page 1").click()
+        for i range(1, 30):
+            driver.find_element_by_link_text("page 1").click()

Setzen Sie for i range (1, 30): vor die Stelle, an der Sie den wiederholten Satz in Form von wiederholen möchten, und rücken Sie nur die Stelle ein, die Sie wiederholen möchten.

Suchen Sie danach eine Zahl, die die Anzahl der Seiten wert ist, z. B. "Seite 1", und ändern Sie sie in "Seite" + str (i) + "".

Seiteninformationen abrufen

Ich verwende das HTML-Formatierungswerkzeug, um die Seiteninformationen abzurufen, aber dieses Mal werde ich BeautifulSoup4 verwenden.

An die Spitze der Quelle

import unittest, time, re
+from bs4 import BeautifulSoup

Und zu dem Zeitpunkt, an dem Sie die Quelle veröffentlichen möchten

    data = driver.page_source.encode('utf-8')
    html = BeautifulSoup(data)
    print(html.select("<Wähler>"))

Bitte einfügen. Klicken Sie mit der rechten Maustaste auf das Ziel-HTML-Tag in dem Fenster, das unter "Elementüberprüfung" angezeigt wird, wenn Sie mit der rechten Maustaste auf den klicken. css-selector.png

Wählen Sie diesen CSS-Pfad und ersetzen Sie ihn durch .

Lauf

Jetzt können Sie loslegen. Öffnen Sie das Terminal


python <Dateiname>.py > test.html

Wenn test.html erstellt wird, ist dies erfolgreich.

Zusammenfassung

Es war überhaupt nicht programmiert, also würde ich mich freuen, wenn mir jemand sagen könnte, der eine Methode ohne Plug-In kennt.

Recommended Posts

Ich habe versucht, die Informationen der ASPX-Site, die mit Selenium IDE ausgelagert wird, so programmlos wie möglich abzurufen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich möchte benutzerdefinierte Datenattribute von HTML als Elemente mit Python Selenium erhalten
Ich habe versucht, die Informationen des Webs mit "Requests" und "lxml" abzurufen.
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
Ich habe versucht, mit pypyodbc schnell Daten von AS / 400 abzurufen
Ich habe versucht, die Genauigkeit von Modellen für maschinelles Lernen mit Kaggle als Thema zu vergleichen.
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
Ich habe mir die Metainformationen von BigQuery angesehen und versucht, sie zu verwenden
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
Ich habe versucht, mit pypyodbc Preparation 1 schnell Daten von AS / 400 abzurufen
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, das RSS des Top-Songs des iTunes Store automatisch abzurufen
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Mit COTOHA habe ich versucht, den emotionalen Verlauf des Laufens von Meros zu verfolgen.
Ich habe versucht, die Verschlechterung des Lithium-Ionen-Akkus mithilfe des Qore SDK vorherzusagen
Ich habe versucht, das Update von "Hameln" mit "Beautiful Soup" und "IFTTT" zu benachrichtigen.
Ich möchte den Pfad des Verzeichnisses abrufen, in dem die laufende Datei gespeichert ist.
[Python] Ich habe versucht, das Mitgliederbild der Idolgruppe mithilfe von Keras zu beurteilen
Ich habe versucht, die Python-Bibliothek "pykakasi" zu verwenden, die Kanji in Romaji konvertieren kann.
Ich habe versucht zu erklären, wozu der Python-Generator so einfach wie möglich ist.
Ich habe versucht, die multiple Regressionsanalyse anhand konkreter Beispiele so einfach wie möglich zu erklären.
Python-Programmierung: Ich habe versucht, Nachrichtenartikel mit Selenium und BeautifulSoup4 abzurufen (zu crawlen)
Ich habe versucht, die 100-Yen-Lagerstätte von Rakuten-Pferderennen (Python / Selen) zu automatisieren.
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, den Bildfilter von OpenCV zu verwenden
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, den Sieg oder die Niederlage der Premier League mit dem Qore SDK vorherzusagen
Ich habe versucht, das Update von "Werde ein Romanautor" mit "IFTTT" und "Werde ein Romanautor API" zu benachrichtigen.
Mit Python + Selenium erhalten Sie Informationen, die der Registerkarte "Netzwerk" der Chrome-Entwicklertools entsprechen
Python-Übung 100 Schläge Ich habe versucht, den Entscheidungsbaum von Kapitel 5 mit graphviz zu visualisieren
Ich habe versucht, die Syntax zu bewerten, die mit der COTOHA-API zu humorvoll und humorvoll war.
Ich habe versucht, den Text in der Bilddatei mit Tesseract der OCR-Engine zu extrahieren
Ich möchte einen Screenshot der Site in Docker mit einer beliebigen Schriftart erstellen
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, die Werbung für die Raubkopien-Website zu kratzen
[Python] Ich habe versucht, Json von Tintenfischring 2 zu bekommen
Ich habe versucht, die Sprache mit CNN + Melspectogram zu identifizieren
Ich habe versucht, das Wissensdiagramm mit OpenKE zu ergänzen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
[Pokemon-Schwertschild] Ich habe versucht, die Urteilsgrundlage des tiefen Lernens anhand der Drei-Familien-Klassifikation als Beispiel zu visualisieren
Ich habe versucht, die häufig verwendete Seaborn-Methode mit so wenig Argumenten wie möglich anzuwenden [für Anfänger]
[1 Stunde Herausforderung] Ich habe versucht, eine Wahrsagerseite zu erstellen, die für Python zu geeignet ist