Selen + WebDriver (Chrome) + Python | Erstellen einer Umgebung zum Scraping

Hintergrund

Was ich machen wollte und die erste Situation

Ich möchte eine Webseite kratzen (HTML nach js Erweiterung).

Die Untersuchung begann

Ich dachte daran, mit Curl oder PHP zu kratzen, Mit Curl war ich ratlos, wenn ich die Quelle nach js nicht aufnahm.

Nach der Untersuchung dort sind die folgenden zwei Kandidaten.

phantomjs

Es gab viele Informationen und ich fühlte, dass sie so effektiv waren, aber ich stellte fest, dass die Entwicklung im Juni 2018 endete und die Unterstützung endete.

Selenium + WebDriver

Als ich es nachgeschlagen habe, gab es viele Informationen und viele neue Artikel, deshalb habe ich beschlossen, es vorerst mit Selen zu versuchen.

Umweltvorbereitung

Dinge notwendig

python
pip
chromedriver
selenium

Da ich einen Mac verwende und Python standardmäßig enthalten ist, werde ich die Installation von Python weglassen.

Installieren Sie pip

$ curl -kL https://bootstrap.pypa.io/get-pip.py | python

Ausführungsergebnis

$ curl -kL https://bootstrap.pypa.io/get-pip.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1841k  100 1841k    0     0  4630k      0 --:--:-- --:--:-- --:--:-- 4649k
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable
Collecting pip
  Downloading pip-20.2.3-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 4.0 MB/s 
Collecting wheel
  Downloading wheel-0.35.1-py2.py3-none-any.whl (33 kB)
Installing collected packages: pip, wheel
  WARNING: The scripts pip, pip2 and pip2.7 are installed in '/Users/xxx/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script wheel is installed in '/Users/xxx/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-20.2.3 wheel-0.35.1

Es gibt eine Nachricht, um den Pfad zu übergeben, also übergeben Sie den Pfad

$ export PATH="$HOME/Library/Python/2.7/bin:$PATH"
$ echo 'export PATH="$HOME/Library/Python/2.7/bin:$PATH"' >> ~/.bash_profile

Überprüfen Sie, ob der Pass bestanden wurde

$ echo $PATH
/Users/xxx/Library/Python/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

$ cat ~/.bash_profile
export PATH="$HOME/Library/Python/2.7/bin:$PATH"

Überprüfen Sie nun, da Sie den Befehl pip verwenden können

$ pip -V
pip 20.2.3 from /Users/xxx/Library/Python/2.7/lib/python/site-packages/pip (python 2.7)

Installieren Sie den Chrome-Treiber

Überprüfen Sie zunächst die Version von Chrome, die Sie derzeit auf Ihrem Computer verwenden. Version: 85.0.4181.101

Verwenden Sie also den folgenden Befehl

pip install chromedriver-binary==85.*

Ausführungsergebnis

$ pip install chromedriver-binary==85.*
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable
Collecting chromedriver-binary==85.*
  Downloading chromedriver-binary-85.0.4183.87.0.tar.gz (3.6 kB)
Building wheels for collected packages: chromedriver-binary
  Building wheel for chromedriver-binary (setup.py) ... done
  Created wheel for chromedriver-binary: filename=chromedriver_binary-85.0.4183.87.0-py2-none-any.whl size=7722067 sha256=901454e21156aef8f8bf4b0e302098747ea378a435c801330ea46d03ed
  Stored in directory: /Users/xxx/Library/Caches/pip/wheels/12/27/b7/69d38bfd65642b45a64e7e97e3160aba20f20be91cd5a
Successfully built chromedriver-binary
Installing collected packages: chromedriver-binary
Successfully installed chromedriver-binary-85.0.4183.87.0
$ 

Installieren Sie Selen

Befehl verwendet

pip install selenium

Ausführungsergebnis

$ pip install selenium
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable
Collecting selenium
  Downloading selenium-3.141.0-py2.py3-none-any.whl (904 kB)
     |████████████████████████████████| 904 kB 5.2 MB/s 
Collecting urllib3
  Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
     |████████████████████████████████| 127 kB 10.7 MB/s 
Installing collected packages: urllib3, selenium
Successfully installed selenium-3.141.0 urllib3-1.25.10
$ 

Jetzt können Sie loslegen.

Versuchen Sie, mit Python zu laufen

Erstellen Sie eine Python-Datei

test.py


import chromedriver_binary 
from selenium import webdriver

options = webdriver.ChromeOptions()
# options.add_argument('--incognito')
# options.add_argument('--headless')

print('connect...try...connect...try...')
driver = webdriver.Chrome(options=options)

driver.get('https://qiita.com')
print(driver.current_url)

# driver.quit()

Lauf

$ python test.py 

Dadurch wird der Chrome-Browser aufgerufen. Ich bin glücklich.

Um im geheimen Fenster zu starten, kommentieren Sie unten aus.

options.add_argument('--incognito')

Wenn Sie einen Headless-Browser verwenden, kommentieren Sie bitte Folgendes aus.

options.add_argument('--headless')

Danach denke ich, dass jeder durch Überprüfen von Selen und xpath kratzen kann.

Ergänzung

Die Version von Python, die diesmal auf dem Mac enthalten war, war 2.7, ist also etwas alt und die Unterstützung endet im Januar 2020. Normalerweise verwende ich Python nicht, also lasse ich es so wie es ist, aber im Ausführungsergebnis jedes Befehls erscheint eine Meldung (DEPRECATION) für 2.7. Bitte vergib mir m (_ _) m

Referenzartikel

Rohrinstallation https://qiita.com/suzuki_y/items/3261ffa9b67410803443 https://qiita.com/tom-u/items/134e2b8d4e11feea8e12

Selen-Setup https://qiita.com/Chanmoro/items/9a3c86bb465c1cce738a

Zusammenfassung der Auswahl von Elementen in Selen https://qiita.com/VA_nakatsu/items/0095755dc48ad7e86e2f

Xpath abkratzen https://qiita.com/rllllho/items/cb1187cec0fb17fc650a

Recommended Posts

Selen + WebDriver (Chrome) + Python | Erstellen einer Umgebung zum Scraping
[Python + Selen] Tipps zum Scraping
[Mac] Erstellen einer virtuellen Umgebung für Python
Erstellen einer Python-Entwicklungsumgebung für die KI-Entwicklung
Download-Datei für Python Selen Chrome überschreiben
Erstellen einer Umgebung zum Ausführen von Python-Skripten (für Mac)
Erstellen einer Anaconda-Umgebung für Python mit pyenv
[Python / Chrome] Grundeinstellungen und Operationen zum Scraping
Schaben mit Selen [Python]
Wartung der Python-Umgebung für Projekte
Erstellen einer Python-Umgebung mit pyenv, pyenv-virtualenv, Anaconda (Miniconda)
Schreiben Sie über das Erstellen einer Python-Umgebung zum Schreiben von Qiita Qiita
Erstellen einer R- und Python Docker-Arbeitsumgebung
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Vorgehensweise zum Erstellen einer CDK-Umgebung unter Windows (Python)
Python-Umgebungskonstruktion für Programmieranfänger (Mac OS)
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Schaben mit Selen in Python
Schaben mit Selen + Python Teil 1
[Python] Beseitigen Sie Chrome Webdriver-Fehler
Scraping mit Selen in Python
Aufbau einer Python-Umgebung für Mac
Selen WebDriver + Firefox49 (vorläufig) (Python)
Python3-Umgebungskonstruktion (für Anfänger)
Erstellen einer virtuellen Python-Umgebung
Web Scraping mit Selenium (Python)
Schaben mit Selen + Python Teil 2
[Zum Organisieren] Python-Entwicklungsumgebung
Erstellen einer virtuellen Python-Umgebung
Fordern Sie Python3 und Selenium Webdriver heraus
Aufbau einer Python-Umgebung für künstliche Intelligenz (Chainer / TensorFlow / CSLAIER)
[Hinweis] Liste der grundlegenden Befehle zum Erstellen einer Python / Conda-Umgebung
[Python] Einführung in das Scraping | Programm zum Öffnen von Webseiten (Selenium-Webdriver)
Erstellen einer Entwicklungsumgebung für Android-Apps - Erstellen von Android-Apps mit Python
Erstellen einer Hy-Umgebung für Lisper, der Python nicht berührt hat
[Python] Erstellen einer virtuellen Python-Umgebung für das Pyramiden-Tutorial (Zusammenfassung)
Erstellen einer Python-Umgebung auf einem Mac
Scraping mit Selen in Python (Basic)
Erstellen einer Python-Umgebung unter Ubuntu
Scraping mit Python, Selen und Chromedriver
Erstellen einer virtuellen Umgebung mit Python 3
Optionen für die Python-Entwicklungsumgebung für Mai 2020
Emacs-Einstellungen für die Python-Entwicklungsumgebung
Python3 TensorFlow für Mac-Umgebungskonstruktion
Web Scraping für Anfänger in Python (1)
Web Scraping für Anfänger in Python (4) -1
Erstellen einer Docker-Arbeitsumgebung für R und Python 2: Japanische Unterstützung
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
Vom Aufbau einer Python-Umgebung für unerfahrene Personen bis zur Hello-Welt
So installieren Sie Chrome Driver für Chrome automatisch mit Python + Selenium + Chrome
Tipps zur Verwendung von Selen und Headless Chrome in einer CUI-Umgebung
Erstellen einer virtuellen Umgebung für Mayavi für Python 3.6-, Anaconda- und Spyder-Benutzer
[Python] Erstellen einer Umgebung mit Anaconda [Mac]
[Definitive Edition] Erstellen einer Umgebung zum Erlernen des "maschinellen Lernens" mit Python unter Windows
Erstellen Sie eine Umgebung für das in Blender integrierte Python
WEB-Scraping mit Python (für persönliche Notizen)