[Python, Ruby] Selen-Holen Sie sich Webseiteninhalte mit Webdriver

Am Anfang

Ich habe es in Ruby und Python geschrieben, aber da ich mich in der zweiten Hälfte entschlossen habe, es in Python zu schreiben, wurde Ruby nur ein einfacher Teil ... Bitte beachten Sie, dass der Ruby-Teil ein zusätzlicher Hinweis ist.

python

Installation

selenium

pip install selenium

chromewebdriver Weil es ein Mac war

brew install chromedriver

Linux ist unten? (Ich weiß es nicht, weil ich es nicht ausprobiert habe ...)

sudo apt-get install chromium-browser

Referenzierte Seite http://stackoverflow.com/questions/8255929/running-webdriver-chrome-with-selenium

Einfacher Code

Ein einfaches Beispiel für den Zugriff auf die Google-Startseite, das Warten von 10 Sekunden und das Schließen

sample.py


from selenium import webdriver
from time import sleep
browser = webdriver.Chrome()
browser.get('http://google.com')
sleep(10)
browser.close()

Login-Beziehung

login.py


#Suchen Sie den Teil, in dem die ID eine E-Mail ist
mail = browser.find_element_by_id('email')
#Suchen Sie den Teil, an dem die ID übergeben wird
pass_wd = browser.find_element_by_id('pass')
#Email eingeben
mail.send_keys('[email protected]')
#Pass eingeben
pass_wd.send_keys('password')
#Senden
pass_wd.submit()

Stellen Sie Zulassen / Benachrichtigungsblock für Chrom ein

Im Fall von Ruby ist es in Ordnung, es so zu lassen, wie es ist, aber im Fall von Python macht es dieses PopUp unmöglich, das Programm auszuführen, also setzen Sie chrome_options im Voraus.

Vorher ändern


browser = webdriver.Chrome()

Nach der veränderung


chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(chrome_options=chrome_options)

scrollen

Scrollen Sie zum Anfang der Seite

browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

Holen Sie sich den Link

Alle Links des gerade angegebenen Elements

links = myelement.find_elements_by_xpath(".//a")

Alle Links auf der Seite jetzt

links = myelement.find_elements_by_xpath("//a")

Wenn Sie einen Link mit einer der oben genannten Informationen erhalten, verwenden Sie "get_attribute (" href ")", um die URL abzurufen

urls = [ link.get_attribute('href') for link in links]

Referenzierte Seite

http://www.takunoko.com/blog/pythonselenium%E3%81%A7twitter%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/ Einfache Anmeldung

http://selenium-python.readthedocs.io/faq.html --Scrollen --nimm einen Link

ruby

Installation

selenium-webdriver gem

gem install selenium-webdriver

chrome driver

Nach dem Herunterladen und Entpacken des Chromedrivers Überprüfen Sie die Position des Rubins mit "Welcher Rubin" und bewegen Sie sich dorthin

Wenn Sie rbenv verwenden, können Sie den folgenden Befehl verwenden mv chromedriver ~/.rbenv/shims

Einfacher Code

require "selenium-webdriver"

driver = Selenium::WebDriver.for :chrome
driver.navigate.to "http://google.com"

driver.quit

Login-Beziehung

## type email
element = driver.find_element(:id, 'email')
element.send_keys '[email protected]'
# type password
element = driver.find_element(:id, 'pass')
element.send_keys 'password'
# submit the form
element.submit

Jetzt können Sie den Bildschirm nach dem Anmelden erhalten.

Referenzierte Seite

http://shoprev.hatenablog.com/entry/2014/04/14/210529 Siehe ChromeDriver-Einstellungen und einfachen Code

https://gist.github.com/huangzhichong/3284966 Siehe hier für Details gestern

Recommended Posts

[Python, Ruby] Selen-Holen Sie sich Webseiteninhalte mit Webdriver
[Python] Mit Metie schnell Webseiten-Metadaten abrufen
Extrahieren Sie mit Python Daten von einer Webseite
Python VBA, um mit Selenium die gesamte WEB-Seite zu erfassen
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Erstellen von BINGO "Web Tools" mit Python (Inhaltsverzeichnis)
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
[Für Anfänger] Web-Scraping mit Python "Greifen Sie auf die URL auf der Seite zu, um den Inhalt abzurufen."
[Teil 2] Crawlen mit Python! Klicken Sie auf die Webseite, um sich zu bewegen!
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
Holen Sie sich die Quelle der Seite unbegrenzt mit Python zu laden.
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
Die Idee, die Konfigurationsdatei mit einer Python-Datei anstelle von yaml zu füttern
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
Überprüfen Sie die Existenz der Datei mit Python
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Dämonisieren Sie eine Python-Webanwendung mit Supervisor
[Persönlicher Hinweis] Scraping von Webseiten in Python3
Laden Sie mit Python Dateien im Web herunter
[Python] Eine schnelle Webanwendung mit Bottle!
[Python] [Meta] Ist der Python-Typ ein Typ?
Führen Sie eine Python-Webanwendung mit Docker aus
Erstellen Sie ein Webframework mit Python! (1)
Die Geschichte der Verarbeitung A von Blackjack (Python)
Einfaches Web-Scraping mit Python und Ruby
Erstellen Sie ein Webframework mit Python! (2)
Die Geschichte, wie man mit Python einen 100-Yen-Frühstücks-Bot für die Universität macht
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B- und C-Probleme von ABC182 mit Python!
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
Berechnen Sie die Wahrscheinlichkeit, eine Tintenfischmünze zu sein, mit dem Bayes-Theorem [Python]
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
[AtCoder Erklärung] Kontrollieren Sie ABC184 A, B, C Probleme mit Python!
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Holen Sie sich den Inhalt von Git Diff aus Python
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
2016 Todai Mathematik mit Python gelöst
Der Inhalt des Python-Tutorials (Kapitel 5) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 4) ist in einem Aufzählungszeichen zusammengefasst.
Der Inhalt des Python-Tutorials (Kapitel 2) ist in einem Aufzählungszeichen zusammengefasst.
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Holen Sie sich den Aufrufer einer Funktion in Python
Der Inhalt des Python-Tutorials (Kapitel 8) ist in einem Aufzählungszeichen zusammengefasst.
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Der Inhalt des Python-Tutorials (Kapitel 1) ist in einem Aufzählungszeichen zusammengefasst.
Angeben des Bereichs von Ruby- und Python-Arrays
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
Starten Sie mit Docker einen einfachen Python-Webserver
Kopieren Sie die Liste in Python