[PYTHON] Ich habe versucht, Selen mit Headless-Chrom zu verwenden

Dieses Mal werde ich versuchen, Headless Chrome mit Selenium zu betreiben.

Der Code ist in GitHub zusammengefasst.

Nachtrag

Ausführungsumgebung

Was ist Headless Chrome?

Ein Modus, der Chrome aus Google Chrome 59 ausführt, ohne den Bildschirm anzuzeigen. Infolgedessen kann es in einer Serverumgebung ohne automatische Tests und Benutzeroberfläche verwendet werden.

Vorbereitung

  1. Installieren Sie die neueste Version Chrome.
  2. Laden Sie Python 3.6 herunter (empfohlen für die Verwendung von virtualenv).
  3. Installieren Sie abhängige Bibliotheken wie Selenium

Python-abhängige Bibliothek

Dieses Mal werde ich die folgende Bibliothek verwenden

** Installierte Treiber werden standardmäßig unter ~ / .wdm / gespeichert

Abhängige Bibliotheksinstallation

Installieren Sie die neueste Version der Vorabversion, Selene. Die oben genannten Bibliotheken sind gleichzeitig mit der Installation von Selene enthalten. Außerdem ist sechs aus irgendeinem Grund abhängig, aber ich habe es nicht zusammen eingegeben, daher werde ich es separat installieren.

pip install selene --pre pip install six

Beispielcode

Es ist eine einfache Google-Suche und Screenshots der Ergebnisse.

sample_selene.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selene.driver import SeleneDriver
from webdriver_manager.chrome import ChromeDriverManager

# run chrome headless
options = Options()
options.add_argument('--headless')

# install chromedriver if not found and start chrome
driver = SeleneDriver.wrap(webdriver.Chrome(executable_path=ChromeDriverManager().install(), chrome_options=options))

# search 'python' in google
driver.get('https://www.google.co.jp/')
input = driver.find_element_by_name('q')
input.send_keys('Python')
input.send_keys(Keys.RETURN)

# save screen shot
driver.save_screenshot('result.png')

driver.quit()

Das Ausführungsergebnis ist wie folgt.

result.png

Parallelisierung des Beispielcodes

sample_selene_parallel.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selene.driver import SeleneDriver
from webdriver_manager.chrome import ChromeDriverManager
from joblib import Parallel, delayed

# search 'keyword' in google
def google(url, keyword):
    # run chrome headless
    options = Options()
    options.add_argument('--headless')
    driver = SeleneDriver.wrap(webdriver.Chrome(executable_path=ChromeDriverManager().install(), chrome_options=options))
    driver.get(url)
    input = driver.find_element_by_name('q')
    input.send_keys(keyword)
    input.send_keys(Keys.RETURN)

    # save screen shot
    driver.save_screenshot(keyword + '.png')

    driver.quit()

url = 'https://www.google.co.jp/'
keywords = ['Python', 'Google', 'Selenium']

# n_jobs=-1 means use all of the resources you can`
Parallel(n_jobs=-1)(delayed(google)(url,keyword) for keyword in keywords)

Das Ausführungsergebnis ist wie folgt. Python-Ergebnisse werden weggelassen. Google.png

Selenium.png

Referenzlink

Recommended Posts

Ich habe versucht, Selen mit Headless-Chrom zu verwenden
Ich habe versucht, Headless Chrome von Selenium zu verwenden
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, Ipython zu verwenden
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe versucht, ngrok zu verwenden
Ich habe versucht, face_recognition zu verwenden
Ich habe versucht, Jupyter zu verwenden
Ich habe versucht, doctest zu verwenden
Ich habe versucht, Folium zu verwenden
Ich habe versucht, jinja2 zu verwenden
Ich habe versucht, Folium zu verwenden
Ich habe versucht, das Zeitfenster zu verwenden
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Ich habe DBM mit Pylearn 2 unter Verwendung künstlicher Daten ausprobiert
Ich habe versucht, die Datenbank (sqlite3) mit kivy zu verwenden
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, einen periodischen Prozess mit CentOS7, Selenium, Python und Chrome durchzuführen
Ich habe versucht, mit Elasticsearch Ranking zu lernen!
[Ich habe versucht, Pythonista 3 zu verwenden] Einführung
Ich habe versucht, easydict (Memo) zu verwenden.
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Ich habe versucht, RandomForest zu verwenden
Ich habe versucht, mit PyCaret zu clustern
Ich habe versucht, BigQuery ML zu verwenden
Ich habe versucht, Amazon Glacier zu verwenden
Ich habe versucht, Git Inspector zu verwenden
Ich habe versucht, Magenta / TensorFlow zu verwenden
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe einen einfachen RPA für die Anmeldung mit Selen ausprobiert
Ich habe versucht, eine Umgebung zu erstellen, um regelmäßig mit Selenium mit AWS Fargate zu überprüfen
Ich habe versucht, AWS Chalice zu verwenden
Ich habe versucht, Slack Emojinator zu verwenden
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
[Python Scraping] Ich habe versucht, Google Search Top10 mit Beautifulsoup & Selenium
Ich habe versucht, die handschriftliche Zeichenerkennung von Runenzeichen mit CNN mithilfe von Keras zu erkennen
Ich habe versucht, Rotrics Dex Arm # 2 zu verwenden
Ich habe versucht, Sätze mit summpy zusammenzufassen
Ich habe maschinelles Lernen mit liblinear versucht
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Essen mit SinGAN zu bewegen