前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >资深抱佛脚玩家的自我修养

资深抱佛脚玩家的自我修养

作者头像
老肥码码码
发布2020-01-17 15:55:34
3560
发布2020-01-17 15:55:34
举报
文章被收录于专栏:算法与数据之美

点击上方“算法与数据之美”,选择“置顶公众号”

更多精彩等你来!

随着课程的结束,期末考试的脚步也近了。作为“资深抱佛脚玩家”,在得知准确的考试安排后我便可以及时做好预习准备,从而在 deadline 的压力之下,迸发出惊人的力量,强化自己的学习能力!

而期末考试的通知是第一时间发布在培养办的网站上,即该网站是最快获取考试信息的渠道。由于经常手动访问该网站会造成自己的焦虑并且浪费宝贵的时间,我决定用我的好帮手「 网络爬虫 」来帮我自动化监测网站,并且当培养办的网站发布出考试安排的通知之后立即告知于我,而告知我的形式采取了邮件发送的形式,即推送到常用的手机中。

页面爬取

观察网页结构发现通知都是发布在 通知公告 这个页面中,非常符合正常的逻辑,即最新发布的通知会出现在第一条的位置。那么我们只需要实时抓取该页面最新一条也就是第一条的内容就可以完成目标。

根据对历来考试通知形式的观察发现,所有的考试通知都带有“考试通知”的字样,并且打开该链接会下载一个xlsx文件,其中包含了考试时间地点等一系列必要信息。

我们采用 lxml 来解析网页,利用 xpath 提取关键的信息,一是通知的title,二是通知的内容(xlsx文件),而这个内容是通过获取该通知的 href 链接下载得到的。

定时爬取

为了能够在发布通知之后尽快得到该消息,又不是非常频繁的访问该网站以至于带来一些不必要的麻烦,所以我们采取每十分钟执行一次程序的策略,也是一种 trade off 。

这里用到了第三方库 apscheduler ,每十分钟执行一次任务,而 misfire_grace_time 则是允许的误差时延,当任务连续执行多次之后,会产生一定的时延,导致下次任务无法执行。

邮件推送

当爬虫监测到培养办有最新的考试信息之后,自动将该 xlsx 文件下载到本地,并且通过邮件附件的形式送到我自己的邮箱,以便我随时随地都能用手机接收到这第一手的资讯。

需要注意的是这里 passwd 不是自己QQ邮箱的密码,而是在开启QQ邮箱的 POP3/SMTP服务 之后得到的授权码。

到这我们的爬虫脚本就已经完成了,一共分为爬虫爬取网页,程序定时运行,邮件发送这三个主体部分。然后我们就可以愉快地“不务正业”啦,直到收到来自自己发给自己的 “死亡邮件” ~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与数据之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
邮件推送
邮件推送(Simple Email Service,SES)是一款基于腾讯云端的平台化服务, 为企业提供安全稳定、简单快速、精准高效的营销、通知和事务邮件的推送服务。产品提供灵活的 IP 部署、电子邮件身份验证以及企业专属定制的启动计划,以保护发件人声誉,同时提供精准智能的数据分析。产品的服务范围覆盖200+国家/地区,可即时触达全球各地的邮箱地址。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档