Ular sawa selenium dan docker

WBOY
Lepaskan: 2024-08-27 06:02:32
asal
561 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!

sumber:dev.to
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!