Maison > développement back-end > Tutoriel Python > Python sélénium et docker

Python sélénium et docker

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-08-27 06:02:32
original
640 Les gens l'ont consulté

Selenium python and docker

Bonjour, je montre comment j'utilise le sélénium (ou undetected_chromedriver) dans un conteneur Docker.


I - Fichier Docker

J'utilise une image Docker Python et j'ajoute chromdriver et chromium pour parcourir un site Web.

La première étape consiste à créer le fichier exigences.txt. Personnellement, j'utilise la bibliothèque chromedriver non détectée, qui prend du sélénium

undetected-chromedriver==3.5.5
Copier après la connexion
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 
Copier après la connexion

Vous pouvez ensuite exécuter ce Dockerfile dans un docker-compose, par exemple.

services:
  bot:
    build: selenium-test
Copier après la connexion

II - Scénario

Dans la deuxième étape, je dois ajouter deux options pour travailler dans un conteneur.

J'ajoute :

  • --pas de bac à sable
  • --disable-setuid-sandbox

Voici un exemple avec 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)

Copier après la connexion

Vous pouvez ensuite utiliser un undetected_chromedriver comme sélénium comme ceci :

self.driver.execute_script("console.log("Hello")
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal