硒 python 和 docker

WBOY
发布: 2024-08-27 06:02:32
原创
476 人浏览过

Selenium python and docker

嗨,我展示了如何在 Docker 容器中使用 selenium(或 unDetected_chromedriver)。


我——Dockerfile

我正在使用 docker python 映像并添加 chromdriver 和 chromium 来浏览网站。

第一步是创建requirements.txt 文件。就我个人而言,我使用 unDetected-chromedriver 库,它需要 selenium

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
登录后复制

II - 脚本

在第二步中,我需要添加两个在容器中工作的选项。

我补充:

  • --无沙盒
  • --禁用-setuid-sandbox

这是一个使用 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 作为 selenium,如下所示:

self.driver.execute_script("console.log("Hello")
登录后复制

以上是硒 python 和 docker的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!