안녕하세요. Docker 컨테이너에서 Selenium(또는 unDetected_chromedriver)을 사용하는 방법을 보여드리겠습니다.
Docker Python 이미지를 사용하고 chromdriver와 chromium을 추가하여 웹사이트를 탐색하고 있습니다.
첫 번째 단계는 요구 사항.txt 파일을 만드는 것입니다. 개인적으로 저는 셀레늄을 사용하는 unDetected-chromedriver 라이브러리를 사용합니다
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
그런 다음 예를 들어 docker-compose에서 이 Dockerfile을 실행할 수 있습니다.
services: bot: build: selenium-test
두 번째 단계에서는 컨테이너 작업을 위한 두 가지 옵션을 추가해야 합니다.
추가합니다:
다음은 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)
그런 다음 unDetected_chromedriver를 다음과 같이 셀레늄으로 사용할 수 있습니다.
self.driver.execute_script("console.log("Hello")
위 내용은 셀레늄 파이썬과 도커의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!