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
web界面效果
拷贝代码到容器内 1、可以看到我们宿主机的当前目录下是生成了一个code目录
2、我们将代码都放入到宿主机的code目录中,我将main.py脚本放入到code目录中
3、回到web页面,我们打开终端命令行工具
在终端工具中进入code目录
可以看到code目录中有我们拷贝进去的main.py文件
运行代码 容器内:/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 from DrissionPage import ChromiumPagefrom DataRecorder import Recorder page = ChromiumPage() recorder = Recorder('data.csv' ) page.get('https://www.maoyan.com/board/4' )while True : 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
脚本成功控制浏览器
修改configs.ini 1 2 3 4 configs.ini默认路径:/usr/ local/lib/ python3.8 /dist-packages/ DrissionPage/_configs/ configs.ini