嗨,我展示了如何在 docker 容器中使用 Selenium (或 undetected_Chromedriver)。
我——dockerfile
我正在使用 docker Python 图像并添加 chromdriver 和 chromium 来浏览网站。
第一步是创建requirements.txt 文件。就我个人而言,我使用 undetected-chromedriver 库,它需要 selenium
1
|
undetected-chromedriver==3.5.5
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
from python:3.10
copy ../.. .
run wget -q -o - HTTPs:
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:
run unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/
ain" style="margin: 0px !important; padding: 2px 4px; font-size: 13px; color: #c7254e; background-color: #f9f2f4; border-radius: 4px; font-weight: normal !important; font-style: normal !important; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; inset: auto !important; float: none !important; line-height: 1.5em !important; outline: 0px !important; overflow: visible !important; position: static !important; text-align: left !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important;".env display=:99
run pip install -r requirements.txt
cmd python -u app.py
|
例如,您可以在 docker-compose 中运行此 dockerfile。
1
2
3
|
services:
bot:
build: selenium-test
|
ii – 脚本
在第二步中,我需要添加两个在容器中工作的选项。
我补充:
立即学习“Python免费学习笔记(深入)”;
这是一个使用 python 的示例
1
2
3
4
5
6
7
8
|
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,如下所示:
1
|
self.driver.execute_script( "console.log(" Hello")
|