基于网络爬虫的负面信息搜集系统
生活随笔
收集整理的这篇文章主要介绍了
基于网络爬虫的负面信息搜集系统
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
这篇应该早就写的,该程序已实际运行了一段时间。
主要模块(网络爬虫+微信交互)
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]
- 下一篇: (附源码)springboot学生宿舍管