docker运行dp可视化教程

docker运行dp可视化教程

可在web界面可视化linux终端,对dp运行的浏览器进行手动处理机器验证。

拉取镜像并运行

该镜像包含:vnc,web可视化,谷歌浏览器,python3.8

1
2
3
4
5
命令:
docker run -name dp -d -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword -e HTTP_PASSWORD=mypassword -v /dev/shm:/dev/shm -v ${PWD}/code:/root/code cdwen/dp_visible:v1

输出:
2a4a06a81dfb626487852ac861a7d6d890330cf6df3f8eda33789962018621d8

参数说明

1
2
3
4
5
6
-d     #后台运行
6080 #web端口
5900 #vnc端口
VNC_PASSWORD #vnc密码
HTTP_PASSWORD #web页面密码
-v ${PWD}/code:/root/code #将当前路径下的code目录挂载到容器的/root/code目录

访问web界面

访问web界面:http://主机ip/6080

我的虚拟机ip是:172.10.12.21所以访问地址是http://172.10.12.21:6080

账户:root

密码:mypassword

1710301301874

web界面效果

1710301359928

拷贝代码到容器内

1、可以看到我们宿主机的当前目录下是生成了一个code目录

1710301466838

2、我们将代码都放入到宿主机的code目录中,我将main.py脚本放入到code目录中

1710301521106

3、回到web页面,我们打开终端命令行工具

1710301612352

1710301627065

在终端工具中进入code目录

1
cd /root/code

可以看到code目录中有我们拷贝进去的main.py文件

1710301687304

运行代码

容器内:/root/code/main.py,代码内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# -*- coding:utf-8 -*-
from DrissionPage import ChromiumPage
from DataRecorder import Recorder

# 创建页面对象
page = ChromiumPage()
# 创建记录器对象
recorder = Recorder('data.csv')
# 访问网页
page.get('https://www.maoyan.com/board/4')

while True:
# 遍历页面上所有 dd 元素
for mov in page.eles('t:dd'):
# 获取需要的信息
num = mov('t:i').text
score = mov('.score').text
title = mov('@data-act=boarditem-click').attr('title')
star = mov('.star').text
time = mov('.releasetime').text
# 写入到记录器
recorder.add_data((num, title, star, time, score))

# 获取下一页按钮,有就点击
btn = page('下一页', timeout=2)
if btn:
btn.click()
page.wait.load_start()
# 没有则退出程序
else:
break

recorder.record()

运行main.py

1
python main.py

脚本成功控制浏览器

1710301800656

1710301864935

修改configs.ini

1
2
3
4
configs.ini默认路径:

/usr/local/lib/python3.8/dist-packages/DrissionPage/_configs/configs.ini


docker运行dp可视化教程
https://kingjem.github.io/2022/05/25/使用docker 运行dp/
作者
Ruhai
发布于
2022年5月25日
许可协议