[PYTHON] Führen Sie Headless-Chrome auf einem Debian-basierten Image aus

Ich möchte js durch Schaben laden

Es ist einfach, einen Headless-Browser zu verwenden, da phantom.js immer noch problemlos für die lokale Ausführung auf Mac OS funktioniert. Ich wollte es mit Cloud Run verwenden. Als ich versuchte, den Vorgang mit dem offiziellen Python-Image zu überprüfen, war es unerwartet kompliziert. Machen Sie sich also eine Notiz

Ich verstehe nicht, dass die Informationen überlaufen

Anscheinend würde phantom.js nicht mehr aktualisiert werden, also entschied ich mich, Headless-Chrome leise zu verwenden. Ich wollte mich nicht anstrengen, also habe ich die Artikel anderer Leute abgefangen Aber ich bin dumm, also habe ich es sowieso nicht verstanden, als ich den Artikel gesehen habe, also habe ich beschlossen, selbst etwas zu tun

Fazit

Es ist nicht besonders schwierig und funktioniert problemlos, wenn die folgenden Bedingungen erfüllt sind.

Laden Sie den Chromkörper herunter
Laden Sie die Version des Treibers herunter, die zum Chromgehäuse passt
Stellen Sie die Startoptionen entsprechend ein

Dockerfile Basisbild verwendet

# Use the official Python image.
# https://hub.docker.com/_/python
FROM python:3.7

Überprüfen Sie die Version zum Zeitpunkt der Installation, wenn Sie das Chrome-Hauptgerät herunterladen.

RUN sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN apt update
RUN apt install google-chrome-stable -y

Suchen Sie zuerst den Treiber-Download, der Ihrer Chrome-Version am nächsten kommt https://chromedriver.storage.googleapis.com/ Suchen Sie dann nach der neuesten Version, die der Version des Hauptgeräts am nächsten kommt, da es diesmal 80 Einheiten waren https://chromedriver.storage.googleapis.com/LATEST_RELEASE_80

Laden Sie die Nummer herunter und entpacken Sie sie

RUN wget https://chromedriver.storage.googleapis.com/80.0.3987.106/chromedriver_linux64.zip
RUN unzip chromedriver_linux64.zip -d /usr/bin/

Stellen Sie natürlich sicher, dass Sie zu diesem Zeitpunkt den PFAD für beide sehen können.

which chromedriver
witch google-chrome

Nur das ist in Ordnung Verwenden Sie es danach einfach und schreiben Sie vorerst ein Anwendungsbeispiel

app.py


from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup


URL = "https://example.jp"


def get_trends():
    try:
        options = Options()
        options.add_argument('--headless')
        options.add_argument('--no-sandbox')
        options.add_argument('--disable-dev-shm-usage')

        driver = webdriver.Chrome(options=options)
        driver.get(URL)
        html = driver.page_source.encode('utf-8')  # more sophisticated methods may be available
        soup = BeautifulSoup(html, "lxml")

das Ende

Bukkake Memo

Recommended Posts

Führen Sie Headless-Chrome auf einem Debian-basierten Image aus
Führen Sie einen Linux-Server mit GCP aus
Führen Sie das Docker-Image von TensorFlow unter Python3 aus
Führen Sie TensorFlow2 auf dem VPS-Server aus
Führen Sie Python-Code in der A2019 Community Edition aus
Führen Sie Jupyter Notebook auf einem Remote-Server aus
Führen Sie matplotlib in einem Windows Docker-Container aus
Führen Sie regelmäßig Python-Programme auf AWS Lambda aus
Führen Sie mysqlclient auf Lambda aus
Führen Sie OpenMVG auf einem Mac aus
[kotlin] Erstelle eine Echtzeit-Bilderkennungs-App auf Android
So führen Sie Django unter IIS auf einem Windows-Server aus
So führen Sie ein geschultes Transformatormodell lokal auf CloudTPU aus
Führen Sie Jupyter unter Ubuntu unter Windows aus
Führen Sie Openpose unter Python (Windows) aus.
Ein Kommentar zum Boruta-Algorithmus
Führen Sie Tensorflow 2.x unter Python 3.7 aus
Führen Sie Pythons CGI auf CORESERVER aus
Erstellen Sie ein Klassenzimmer auf Jupyterhub
Führen Sie IPython Notebook auf Docker aus
Führen Sie YOLO v3 unter AWS v2 aus
Führen Sie Circuit Python auf Seeeduino XIAO aus
Führen Sie Jupyter Notebook unter Windows aus
Führen Sie OpenVino unter macOS Catalina aus
Das Bild ist Namekuji
Führen Sie YOLO v3 unter AWS aus
Führen Sie eine Java-App aus, die sich in AWS EC2 als Daemon befindet
Erstellen Sie ein Docker-Container-Image mit JRE8 / JDK8 unter Amazon Linux
Erstellen einer Umgebung zum Ausführen von ChainerMN auf einer AWS-GPU-Instanz
Bereiten Sie ein Projektformat für maschinelles Lernen vor und führen Sie es in SageMaker aus