基于网络爬虫的负面信息搜集系统
生活随笔
收集整理的這篇文章主要介紹了
基于网络爬虫的负面信息搜集系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這篇應該早就寫的,該程序已實際運行了一段時間。
主要模塊(網絡爬蟲+微信交互)
1、網絡爬蟲毫無疑問是本項目的核心,由于定位搜集p2p的負面信息,我們嘗試了三個目標源(百度、網貸之家、網貸天眼)
核心策略 平臺名稱+負面關鍵字
負面關鍵字可以后臺實施維護,平臺名稱需要用戶在微信公眾號內輸入
(1)爬蟲頭信息的偽裝
_send_headers = {'Host':'www.wdzj.com','User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Connection':'keep-alive' (2)BeautifulSoup解析返回的頁面 request = urllib2.Request(_PREFIX_START+platformName,headers=_send_headers) response = urllib2.urlopen(request) soup = BeautifulSoup(response.read(), "lxml")(3)定時任務方式無限爬取和定時更新微信的token(2小時實效)threads = [] #以子線程方式啟動定時獲取access_token的任務。2小時一次 t1 = threading.Thread(target=getAccessToken) threads.append(t1)t2 = threading.Thread(target=ZhijiaScanner) threads.append(t2)t3 = threading.Thread(target=SkyeyeScanner) threads.append(t3)for t in threads:#t.setDaemon(True)t.start()2、微信公眾號部分
(1)微信消息的獲取
@app.route('/wx',methods=['get','post']) def wx(): 該接口拿到微信的所有回調信息,分類處理即可 (2)微信回調信息的分類處理 if request.method == 'POST':#print 'post'#print request.data#獲取用戶發送的消息xml_recv = ET.fromstring(request.data)#先分析消息類型MsgType=xml_recv.find("MsgType").textif MsgType == "text":return TextMsgDealer.dealTextMsg(xml_recv)elif MsgType == "event":#收到點擊時間 這些在微信的接口文檔可以容易閱讀 3、過程中的問題 flask自帶server并不穩定,顯而易見,tomcat不能省 及時處理發給微信平臺的消息,接受到響應后及時打標記; elif Event=="TEMPLATESENDJOBFINISH":#接收到一條模版信息回復MsgId=xml_recv.find("MsgID").textconfig.myLogger.info("接收到編號為: '%s' 的模版信息回復" % MsgId)#根據msgID將對應的發送記錄狀態置為1成功dao.updatePushStatus(MsgId)總結
以上是生活随笔為你收集整理的基于网络爬虫的负面信息搜集系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BZOJ2539][CTSC2000]
- 下一篇: abcd ab cd 2c语言,整数趣题