一诉稍、緣 起
本片文章是在筆者之前寫過的文章:《 定時(shí)從某網(wǎng)站爬取壓縮包 》磨德、《「爬蟲」從某網(wǎng)站爬取數(shù)據(jù)》基礎(chǔ)上豁鲤,對(duì)網(wǎng)絡(luò)爬蟲學(xué)習(xí)并應(yīng)用于實(shí)際的另一次新功能擴(kuò)充筆記茎杂,該腳本的核心功能如下:
- 每天11點(diǎn)和17點(diǎn)準(zhǔn)時(shí)推送房管局登記網(wǎng)站目前【正在登記】的項(xiàng)目信息和當(dāng)前登記人數(shù)(定時(shí)推送的時(shí)間可根據(jù)實(shí)際情況自由配置)
- 7x24小時(shí)實(shí)時(shí)監(jiān)控房管局登記網(wǎng)站兜材,一旦有【即將開始】登記的項(xiàng)目第一時(shí)間推送微信消息提醒大家
二理澎、思 路
首先,用Python BeautifulSoup和Selenium + Phantomjs技術(shù)爬取目標(biāo)頁面的需求字段
然后护姆,將目標(biāo)字段整理成易讀string類型數(shù)據(jù)矾端,通過Python3發(fā)微信的第三方庫wxpy來推送微信到希望通知的聯(lián)系人或群聊
最后,將爬蟲腳本在jenkins定時(shí)構(gòu)建卵皂,達(dá)到定時(shí)推送爬取數(shù)據(jù)和實(shí)時(shí)監(jiān)控的效果
三秩铆、說 明
- 環(huán)境:Linux + jenkins,用于部署實(shí)時(shí)監(jiān)控腳本和jenkins環(huán)境
- Python3.6 + BeautifulSoup(bs4)庫 + Selenium Phantomjs,爬蟲腳本主要基于bs4和Phantomjs殴玛,Phantomjs主要用于爬取被加密頁面的數(shù)據(jù)
- byWeChat.py捅膘、runWeChat.py為微信推送方法的實(shí)現(xiàn)和登錄微信的實(shí)現(xiàn),在receiverCfg.ini文件配置接收人或群聊
- 其余腳本均為在目標(biāo)網(wǎng)站爬取需求字段的腳本滚粟,詳情見README.md文件
四寻仗、實(shí) 現(xiàn)
因?yàn)楸敬喂δ荛_發(fā)的腳本較多,故不在此一一說明凡壤,詳情見該項(xiàng)目的Git地址署尤,但是還需要強(qiáng)調(diào):
- 主腳本為:sendComeSoonRegis.py(獲取即將開始登記項(xiàng)目信息)和sendRegistering.py(獲取正在登記項(xiàng)目信息)
- Python推微信消息需要用到wxpy這個(gè)第三方庫,如果想讓微信7x24保持登錄狀態(tài)亚侠,需要在微信登錄緩存失效前再次運(yùn)行登錄微信的腳本曹体,這是我目前解決無法持續(xù)登錄微信的笨辦法,讀者若有更好的方法硝烂,歡迎下面留言~
- 另外箕别,因?yàn)榉抗芫止倬W(wǎng)有些網(wǎng)頁是加密的,所以用bs4無法獲取頁面滞谢,我同樣用到的笨辦法是用Selenium + 無頭瀏覽器Phantomjs
五串稀、最 后
- 看一下效果吧
Git地址:https://gitee.com/freedomlidi/autoGetRegisDataPlus.git
OK!
~
~
~
不積跬步狮杨,無以至千里