一、缘 起
本片文章是在笔者之前写过的文章:《 定时从某网站爬取压缩包 》、《「爬虫」从某网站爬取数据》基础上,对网络爬虫学习并应用于实际的另一次新功能扩充笔记,该脚本的核心功能如下:
- 每天11点和17点准时推送房管局登记网站目前【正在登记】的项目信息和当前登记人数(定时推送的时间可根据实际情况自由配置)
- 7x24小时实时监控房管局登记网站,一旦有【即将开始】登记的项目第一时间推送微信消息提醒大家
二、思 路
首先,用Python BeautifulSoup和Selenium + Phantomjs技术爬取目标页面的需求字段
然后,将目标字段整理成易读string类型数据,通过Python3发微信的第三方库wxpy来推送微信到希望通知的联系人或群聊
最后,将爬虫脚本在jenkins定时构建,达到定时推送爬取数据和实时监控的效果
三、说 明
- 环境:Linux + jenkins,用于部署实时监控脚本和jenkins环境
- Python3.6 + BeautifulSoup(bs4)库 + Selenium Phantomjs,爬虫脚本主要基于bs4和Phantomjs,Phantomjs主要用于爬取被加密页面的数据
- byWeChat.py、runWeChat.py为微信推送方法的实现和登录微信的实现,在receiverCfg.ini文件配置接收人或群聊
- 其余脚本均为在目标网站爬取需求字段的脚本,详情见README.md文件
四、实 现
因为本次功能开发的脚本较多,故不在此一一说明,详情见该项目的Git地址,但是还需要强调:
- 主脚本为:sendComeSoonRegis.py(获取即将开始登记项目信息)和sendRegistering.py(获取正在登记项目信息)
- Python推微信消息需要用到wxpy这个第三方库,如果想让微信7x24保持登录状态,需要在微信登录缓存失效前再次运行登录微信的脚本,这是我目前解决无法持续登录微信的笨办法,读者若有更好的方法,欢迎下面留言~
- 另外,因为房管局官网有些网页是加密的,所以用bs4无法获取页面,我同样用到的笨办法是用Selenium + 无头浏览器Phantomjs
五、最 后
- 看一下效果吧
Git地址:https://gitee.com/freedomlidi/autoGetRegisDataPlus.git
OK!
~
~
~
不积跬步,无以至千里