[PYTHON] Festkomma-Beobachtung bestimmter Daten im Web durch automatische Ausführung des Webbrowsers auf dem Server (Ubuntu16.04) (1) -Webbrowser-Installation-

Zweck

Es gab Daten im WEB, deren Werte sich in Echtzeit änderten. Ich habe beschlossen, ein Programm zu erstellen, um den Wert regelmäßig zu überprüfen, aber es war mühsam, den Scraping-Code zu schreiben, da ich mich auf der Seite anmelden musste. Als Gegenmaßnahme entschied ich mich, Selen zu verwenden, um einen Webbrowser zu betreiben und zu kratzen. Ich werde den Prozess als Memorandum zusammenfassen.

Darüber hinaus war es in Ordnung, den vorhandenen PC zu verwenden und den Webbrowser automatisch durch Stapelverarbeitung auszuführen. Es war jedoch ein Hindernis, den Webbrowser auf meinem eigenen PC zu starten, den ich normalerweise verwende. Lassen Sie es uns ohne Erlaubnis auf dem Mietserver (Ubuntu16.04) ausführen.

Genauer gesagt wird es das folgende Bild sein. (1) Starten Sie einen Webbrowser über Python → Teil1 (dieser Beitrag) (2) Betreiben Sie den Webbrowser mit Selen und verarbeiten Sie die WEB-Daten → Erklärt in Teil 2 (3) Speichern Sie die verarbeiteten Daten in mongoDB → Erklärt in Teil3 (4) Führen Sie das py-Programm, das (1) bis (3) mit cron ausführt, automatisch aus → Erklärt in Teil3 (5) Bei einer bestimmten Wertschwankung per E-Mail benachrichtigen → Bonus

Umgebung

Betriebssystem: Ubuntu16.04 (Sakura VPS) python : python3.5

Schritt 1) Auswahl des Webbrowsers

Ursprünglich arbeitete ich mit Google Chrome, aber in gewisser Weise fand ich den kopflosen Browser PhantomJS gut, sodass ich anfing, PhantomJS zu verwenden. Die Gründe für die Wahl von PhantomJS sind folgende.

Schritt 2) Installieren Sie PhantomJS 2.1.1

Ich habe PhantomJS mithilfe der folgenden Schritte installiert.

$ wget -O /tmp/phantomjs-2.1.1-linux-x86_64.tar.bz2 https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
$ cd /tmp
$ bzip2 -dc /tmp/phantomjs-2.1.1-linux-x86_64.tar.bz2 | tar xvf -
$ sudo mv /tmp/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
$ phantomjs --version
> 2.1.1

Wenn die Versionsprüfung in der letzten Zeile die beabsichtigte Version anzeigt, die Sie installiert haben, sind Sie fertig.

(Referenz-URL) http://bit.ly/2bRGnYI

Schritt 2) Installieren Sie Selen

Verwenden Sie Selen für die Festpunktbeobachtung von Daten im Web. Selen ist eines der Testwerkzeuge für WEB-Anwendungen. Anstatt dass Menschen den Browser steuern, steuert Selenium den Browser.

Selen kann mit Programmcode bedient werden, aber kurz gesagt, mit Selen können Sie den Browser programmgesteuert frei bedienen. Sie können beispielsweise Vorgänge wie "Klicken Sie auf die Schaltfläche" Anmelden "und" Geben Sie Ihre E-Mail-Adresse automatisch in das Textfeld "Benutzer-ID" ein "ausführen. Sie können auch den HTML-Text der aktuell geöffneten Seite abrufen, der zum Scraping verwendet werden kann.

Ich habe mit Selen in Python3 gearbeitet. Führen Sie die folgenden Schritte aus, um Selen zu installieren, einschließlich der Installation von pip3.

sudo apt-get install python3-setuptools
sudo easy_install3 pip
pip3 install selenium

Schritt 3) Selen- und PhantomJS-Testprogramm

Verwenden Sie Selenium und PhantomJS, um die Seite Google zu starten und den Wert des Google-Titel-Tags abzurufen.

Selentestprogramm


import time
from selenium import webdriver

browser = webdriver.PhantomJS(executable_path='<path/to/phantomjs>')
browser.get("http://www.google.com")
time.sleep(3)

print(browser.title)

browser.close()

Der obige Code ist intuitiv und leicht zu verstehen, und selbst wenn Sie mit Selen noch nicht vertraut sind, werden Sie nicht verwirrt sein. Wenn "Google" ausgegeben wird, läuft das Programm normal.

Das einzige, was Aufmerksamkeit braucht, ist die 4. Zeile. Wenn Sie PhantomJS mit webdriver.PhantomJS () aufrufen, müssen Sie den Pfad von phantomJS im Argument beschreiben. Geben Sie den Pfad im Formular webdriver.PhantomJS (ausführbarer_Pfad = '...') an, wie im obigen Code gezeigt. Wenn Sie den Weg nicht kennen

which phantomjs

Da der zurückgegebene Wert der Pfad ist, geben wir den Speicherort an.

Die 5. Zeile sendet eine GET-Anfrage an die von browser.get (...) angegebene URL. Die erhaltene Antwort wird im Browser gespeichert und der Wert des Titel-Tags von Google kann in browser.title ausgegeben werden.

Nachdem wir bestätigt haben, dass Selen und PhantomJS gestartet sind, möchten wir tatsächlich bestimmte Daten kratzen und extrahieren.

Fahren Sie fort mit Fortsetzung (2).

Recommended Posts

Festkomma-Beobachtung bestimmter Daten im Web durch automatische Ausführung des Webbrowsers auf dem Server (Ubuntu16.04) (1) -Webbrowser-Installation-
Speichern Sie die vom Browser erfassten Sprachdaten im WAV-Format auf dem Server
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
Veröffentlichen Sie das aktuelle Verzeichnis auf dem Webserver
Festpunktbeobachtung bestimmter Daten im Web durch automatische Ausführung eines Webbrowsers auf dem Server (Ubuntu16.04) (2) -Web Scraping-
Festkomma-Beobachtung bestimmter Daten im Web durch automatische Ausführung des Webbrowsers auf dem Server (Ubuntu16.04) (1) -Webbrowser-Installation-
Speichern Sie die vom Browser erfassten Sprachdaten im WAV-Format auf dem Server
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS
Gibt das Ergebnis der morphologischen Analyse mit Mecab an einen WEB-Browser aus, der mit Sakura Server / UTF-8 kompatibel ist
Sammeln Sie nur Gesichtsbilder einer bestimmten Person mit Web Scraping
Überwachen Sie regelmäßig die HTTP-Antwort des Webservers
Verwenden Sie die neueste Version von PyCharm unter Ubuntu
Zum Zeitpunkt des Python-Updates mit Ubuntu
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
Ich habe die Oberfläche des Krankenhaus-Dashboards erstellt, die klinische Daten auf der Webseite anzeigt.
Daten Langling PDF über den Ausbruch der Influenza durch das Ministerium für Gesundheit, Arbeit und Soziales