Detailliertes Tutorial zum Ausführen von Selenium+Chromedriver auf dem Server

Detailliertes Tutorial zum Ausführen von Selenium+Chromedriver auf dem Server

1. Einleitung

Ich möchte Selenium verwenden, um Daten von einer Website zu scrapen, aber manchmal treten bei der Verwendung von Phantomjs Fehler auf. Chrome verfügt jetzt auch über einen Headless-Betriebsmodus, sodass Phantomjs nicht mehr benötigt werden.

Bei der Installation von Chrome auf dem Server sind jedoch einige Fehler aufgetreten. Hier ist eine Zusammenfassung des gesamten Installationsvorgangs

2. Installieren Sie Chrome auf Ubuntu

# Installieren Sie Google Chrome
# https://askubuntu.com/questions/79280/how-to-install-chrome-browser-properly-via-command-line
sudo apt-get installiere libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb # Könnte „Fehler“ anzeigen, behoben in der nächsten Zeile
sudo apt-get install -f

Es sollte jetzt installiert sein. Testen Sie es, indem Sie den folgenden Befehl ausführen:

Google Chrome – Headless – Remote-Debugging-Port = 9222 https://chromium.org – Disable-Gpu

Hier verwenden wir den Headless-Modus für Remote-Debugging. Die meisten Ubuntu-Rechner haben keine GPU, daher wird --disable-gpu verwendet, um Fehler zu vermeiden.
Anschließend können Sie eine weitere SSH-Verbindung zum Server öffnen und über die Kommandozeile auf den lokalen Port 9222 des Servers zugreifen:

Locken http://localhost:9222

Wenn die Installation erfolgreich war, werden Ihnen Debuginformationen angezeigt. Ich werde hier jedoch einen Fehler melden. Im Folgenden finden Sie die Lösung für den Fehler.

1) Mögliche Fehlerlösungen

Nach dem Ausführen des obigen Befehls erhalten Sie möglicherweise eine Fehlermeldung, dass Chrome nicht als Root ausgeführt werden kann. Verwenden Sie derzeit die folgenden Einstellungen, um Chrome einzurichten

1. Suchen Sie die Google Chrome-Datei

Mein Standort ist /opt/google/chrome/

2. Öffnen Sie die Google Chrome-Datei mit vi

vi /opt/google/chrome/google-chrome

Gefunden in der Datei

exec -a "$0" "$HERE/chrome" "$@"

3. Fügen Sie am Ende –user-data-dir –no-sandbox hinzu. Der gesamte Shell-Befehl lautet

exec -a "$0" "$HERE/chrome" "$@" --user-data-dir --no-sandbox

4. Öffnen Sie Google Chrome erneut und Sie können normal darauf zugreifen!

3. Installieren Sie den Chrome-Treiber Chromedriver

Chromedriver herunterladen

Chromedriver bietet eine API für den Betrieb von Chrome und ist eine Brücke für Selenium zur Steuerung von Chrome.

Am besten installieren Sie die neueste Version von Chromedriver. Ich erinnere mich, dass ich am Anfang nicht die neueste Version installiert habe und ein Fehler gemeldet wurde. Es gibt kein Problem mit der neuesten Version von Chromedriver. Die neueste Version finden Sie unter der folgenden Adresse
https://sites.google.com/a/chromium.org/chromedriver/downloads

Als ich diesen Artikel schrieb, war die neueste Version 2.37

wget https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
Entpacken Sie chromedriver_linux64.zip

An diesem Punkt ist die serverseitige, schnittstellenfreie Version von Chrome installiert.

4. So verwenden Sie die Nicht-Schnittstellenversion von Chrome

von Selenium importiere Webtreiber
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/62.0.3202.94 Safari/537.36'")
wd = Webtreiber.Chrome (Chrome-Optionen = Chrome-Optionen, ausführbarer Pfad = „/home/Chrome/Chrome-Treiber“)

wd.get("https://www.163.com")

Inhalt = wd.page_source.encode('utf-8')
Inhalt drucken

wd.quit()

Hier kann der dritte Einstellungsparameter in chrome_options verhindern, dass die Website erkennt, dass Sie den randlosen Modus zum Anti-Crawlen verwenden.

Die anderen beiden Einstellungen unten öffnen Chrome mit einer Benutzeroberfläche auf dem Desktop-Linux-System oder Mac-System, wenn sie nicht festgelegt sind. Beim Debuggen können Sie die folgenden beiden Zeilen auskommentieren und Chrome mit einer Benutzeroberfläche zum Debuggen des Programms verwenden.

chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

5. Referenzen

https://jiayi.space/post/zai-ubuntufu-wu-qi-shang-shi-yong-chrome-headless
https://blog.csdn.net/u013703963/article/details/71083802

Zusammenfassen

Dies ist das Ende dieses Artikels über Selenium+Chromedriver, der auf dem Server ausgeführt wird. Weitere Informationen über Selenium+Chromedriver, der auf dem Server ausgeführt wird, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Python verwendet Selenium, um die asynchron geladene Datenmethode von Taobao zu crawlen
  • Beispielcode zur Selenium-Ausnahmebehandlung in Python
  • Detaillierte Erklärung zur Verwendung von Selenium Chrome unter Linux
  • Detaillierte Erklärung der Ausführung von Javascript-Skriptparametern und Rückgabewerten durch Selenium
  • Python + Selenium + Crontab zur Realisierung der täglichen automatischen Einstempelfunktion
  • Detaillierte Erläuterung der Konfigurationsoptionen, wenn Selenium Chrome startet
  • Selenium: Analyse häufiger Ausnahmen und Demonstration von Lösungen

<<:  So migrieren Sie den MySQL-Speicherort auf eine neue Festplatte

>>:  JavaScript Canvas realisiert dynamische Punkt- und Linieneffekte

Artikel empfehlen

Diagramm zur Installation von MySQL 5.6 unter Windows 7

Inhaltsverzeichnis 1. Herunterladen 2. Installati...

MySQL 8.0.12 Installationskonfigurationsmethode und Kennwortänderung

In diesem Artikel werden die Installations- und K...

So installieren Sie MySQL 8.0 und melden sich bei MySQL unter MacOS an

Folgen Sie dem offiziellen Tutorial, laden Sie da...

Tutorial zur Verwendung des iostat-Befehls unter Linux

Vorwort Es wird gesagt, dass sich die für Betrieb...

Methoden und Probleme bei der Installation von MariaDB in CentOS unter MySQL

Löschen Sie die zuvor installierte MariaDB 1. Ver...

Beschreibung der HTML-Meta-Viewport-Attribute

Was ist ein Ansichtsfenster? Mobile Browser platz...

MYSQL Eine Frage zur Verwendung von Zeichenfunktionen zum Filtern von Daten

Problembeschreibung: Struktur: test hat zwei Feld...

Zusammenfassung der Konstruktor- und Superwissenspunkte in React-Komponenten

1. Einige Tipps zu mit class in react deklarierte...

Teilen Sie 9 Linux Shell Scripting Tipps für die Praxis und Interviews

Vorsichtsmaßnahmen 1) Interpreter am Anfang hinzu...

Das Implementierungsprinzip der MySQL-Master-Slave-Synchronisation

1. Was ist MySQL Master-Slave-Synchronisierung? W...

Zwei Möglichkeiten zum vollständigen Löschen von Benutzern unter Linux

Linux-Betrieb Experimentelle Umgebung: Centos7-Vi...