Hallo, ich zeige, wie ich Selenium (oder undetected_chromedriver) in einem Docker-Container verwende.
Ich verwende ein Docker-Python-Image und füge Chromdriver und Chromium hinzu, um eine Website zu durchsuchen.
Der erste Schritt besteht darin, die Datei „requirements.txt“ zu erstellen. Persönlich verwende ich die Undetected-Chromedriver-Bibliothek, die Selen benötigt
undetected-chromedriver==3.5.5
FROM python:3.10 COPY ../.. . RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' RUN apt-get -y update RUN apt-get install -y chromium # install chromedriver RUN apt-get install -yqq unzip RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip RUN unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/ ENV DISPLAY=:99 RUN pip install -r requirements.txt CMD python -u app.py
Diese Docker-Datei können Sie dann beispielsweise in einem Docker-Compose ausführen.
services: bot: build: selenium-test
Im zweiten Schritt muss ich zwei Optionen für das Arbeiten in einem Container hinzufügen.
Ich füge hinzu:
Hier ist ein Beispiel mit Python
class App: options: uc.ChromeOptions driver: uc.Chrome def __init__(self): self.options = uc.ChromeOptions() self.options.arguments.extend(["--no-sandbox", "--disable-setuid-sandbox"]) self.driver = uc.Chrome(headless=True, use_subprocess=False)
Sie können dann einen undetected_chromedriver wie folgt als Selenium verwenden:
self.driver.execute_script("console.log("Hello")
Das obige ist der detaillierte Inhalt vonSelenium-Python und Docker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!