首页 > 技术文章 > 「完结篇」网络爬虫+实时监控+推送微信

freedomlidi 2020-03-06 22:17 原文

一、缘 起

本片文章是在笔者之前写过的文章:《 定时从某网站爬取压缩包 》、《「爬虫」从某网站爬取数据》基础上,对网络爬虫学习并应用于实际的另一次新功能扩充笔记,该脚本的核心功能如下:

  1. 每天11点和17点准时推送房管局登记网站目前【正在登记】的项目信息和当前登记人数(定时推送的时间可根据实际情况自由配置)
  2. 7x24小时实时监控房管局登记网站,一旦有【即将开始】登记的项目第一时间推送微信消息提醒大家

二、思 路

首先,用Python BeautifulSoupSelenium + Phantomjs技术爬取目标页面的需求字段
然后,将目标字段整理成易读string类型数据,通过Python3发微信的第三方库wxpy来推送微信到希望通知的联系人或群聊
最后,将爬虫脚本在jenkins定时构建,达到定时推送爬取数据和实时监控的效果

三、说 明

脚本结构

  1. 环境:Linux + jenkins,用于部署实时监控脚本和jenkins环境
  2. Python3.6 + BeautifulSoup(bs4) + Selenium Phantomjs,爬虫脚本主要基于bs4PhantomjsPhantomjs主要用于爬取被加密页面的数据
  3. byWeChat.pyrunWeChat.py为微信推送方法的实现和登录微信的实现,在receiverCfg.ini文件配置接收人或群聊
  4. 其余脚本均为在目标网站爬取需求字段的脚本,详情见README.md文件

四、实 现

因为本次功能开发的脚本较多,故不在此一一说明,详情见该项目的Git地址,但是还需要强调:

  • 主脚本为:sendComeSoonRegis.py(获取即将开始登记项目信息)和sendRegistering.py(获取正在登记项目信息)
  • Python推微信消息需要用到wxpy这个第三方库,如果想让微信7x24保持登录状态,需要在微信登录缓存失效前再次运行登录微信的脚本,这是我目前解决无法持续登录微信的笨办法,读者若有更好的方法,欢迎下面留言~
  • 另外,因为房管局官网有些网页是加密的,所以用bs4无法获取页面,我同样用到的笨办法是用Selenium + 无头浏览器Phantomjs

五、最 后

  • 看一下效果吧

推送微信消息
祝大家

Git地址:https://gitee.com/freedomlidi/autoGetRegisDataPlus.git

OK!

~
~
~

不积跬步,无以至千里

推荐阅读