通过Selenium自动的登录邮箱,下载邮箱中符合条件的邮件,并对邮件的内容进行解析存档。 基于Selenium Grid的方案适用于以下场景:
本次的需求对时效性要求不高,邮件的获取需要由定时器进行触发,如果使用Selenium Grid,可能会增加了整个系统的复杂程度,分布式系统中每引入一个中间件,就会增加系统的复杂性,系统的可用性就会随之降低。 基于以上分析,考虑采用selenium handless的模式,在Docker中运行Chrome的WebDriver,完成最终邮件的自动获取。 在确定方案之后,需要寻找合适的Docker镜像,最终找到了chromium-xvfb这个镜像文件,集成了Chromium和Xvfb,可以满足在Docker容器中通过Selenium来进行无界面的操作。 1. 下载chromium-xvfb的镜像文件 [root@prod ~]# docker pull markadams/chromium-xvfb-py22. 交互模式运行 [root@prod ~]# docker run --rm -it markadams/chromium-xvfb-py2 bash
3. 进入python环境 root@8016c66877aa:/usr/src/app# python4. 输入以下python代码 from selenium import webdriver没有错误输出,证明Chrome已经在Docker下可以正常工作。 以markadams/chromium-xvfb-py2作为基础镜像,重新编写的Dockerfile如下: FROM markadams/chromium-xvfb-py2 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|