Python实现网页截屏、查库,并发每周定时发送邮件给你

本文介绍了使用 Python(2.7版本)实现网页截屏、查库、发邮件的 demo。用到了 selenium、phantomjs、mailer、jinja2、mysqldb 还有 image,都是比较典型的用法,可复用性比较强,记录一下。

代码

本 demo 是用于发周报邮件的,周报内容包括数据库中的记录以及网页指定元素的截屏。linux 中可以用 crontab 每周定时发送。需要发类似周报的同学这下轻松了!

直接上代码,使用 Python2.7 版本,关于第三方模块的安装,都很简单,这里就不赘述了。

其中相关数据库参数、邮件参数、网址等真实数据都已做处理掉,提醒加大学习的时候注意替换补全。

Python实现网页截屏、查库,并发每周定时发送邮件给你

etch_results() 读库,返回结果。

screen_shot(event_id) 用于网页截屏,event_id 用于传递 url 参数。使用 selenium+phantomjs 实现,都是 Python 爬虫很典型的工具。

注意:其中使用 Image 截取 DOM 中 id 为 main 的元素操作。截取后保存到本地。

send_mail(results) 是发邮件,利用了 mailer 和 jinja2 模板,其中 env = Environment(loader=PackageLoader(‘jinja’, ‘templates’)) 这行代码为 jinja2 加载模板的代码,模板位于与此 py 脚本文件同目录 jinja 包下 templates 目录下的 mail.html 中。可以看下在 mail 中嵌入图片和作为附件发送的操作。

mail.html 内容如下:

Python实现网页截屏、查库,并发每周定时发送邮件给你

jinja 变量 row 为字典类型,对应数据库一条记录,索引都是表字段名,注意替换。

每行最后一列都是来自网页截屏的图片,一定要注意此处在 img 标签的 src 属性中用 cid 引入,否则原始 img 标签的引入方式是不生效的!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 常用库: fuzzywuzzy,字符串模糊匹配。 esmre,正则表达式的加速器。 Chardet字符编码探测器,...
    AlastairYuan阅读 2,316评论 0 43
  • python 也是很值得学习的一门工具。学好python和R。 1环境管理 管理 Python 版本和环境的工具 ...
    Liam_ml阅读 4,863评论 1 51
  • 建好文件各类配置xml文件后,在mybatis.xml中配置中起别名,引入映射文件,懒加载的位置我也给你标出来了 ...
    别叫我小新阅读 274评论 0 0
  • 题目 给定一个链表,使其从m位置到n位置的链表进行反转,一次通过,链表的长度是在1<=m<=n<=链表长度 举例:...
    zhouwaiqiang阅读 460评论 0 0
  • 单独使用Fragment时,可以利用下面这个函数实现懒加载; Fragment结合ViewPager时,可以使用下...
    ChenME阅读 156评论 0 0