Rumah > pembangunan bahagian belakang > Tutorial Python > Ular sawa selenium dan docker

Ular sawa selenium dan docker

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-08-27 06:02:32
asal
631 orang telah melayarinya

Selenium python and docker

Hai, saya tunjukkan cara saya menggunakan selenium (atau undetected_chromedriver) dalam bekas docker.


Saya - Fail Docker

Saya menggunakan imej ular sawa docker dan menambahkan chromdriver dan chromium untuk menyemak imbas tapak web.

Langkah pertama ialah mencipta fail requirements.txt. Secara peribadi, saya menggunakan perpustakaan undetected-chromedriver, yang mengambil selenium

undetected-chromedriver==3.5.5
Salin selepas log masuk
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 
Salin selepas log masuk

Anda kemudian boleh menjalankan Dockerfile ini dalam docker-compose, sebagai contoh.

services:
  bot:
    build: selenium-test
Salin selepas log masuk

II - Skrip

Dalam langkah kedua, saya perlu menambah dua pilihan untuk bekerja dalam bekas.

Saya menambah :

  • --tiada-kotak pasir
  • --lumpuhkan-setuid-kotak pasir

Berikut ialah contoh dengan 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)

Salin selepas log masuk

Anda kemudian boleh menggunakan undetected_chromedriver sebagai selenium seperti ini:

self.driver.execute_script("console.log("Hello")
Salin selepas log masuk

Atas ialah kandungan terperinci Ular sawa selenium dan docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan