相关技术和工具:python2.7/3.5、Ajax、jQuery、AngularJs、MySQL、nginx、qiniu(七牛云图片)、tornado、Tinymce、template.js、fiddler(工具)、Charles(工具)、XPath、 re、scrapy、jsonpath 、selenium 、logging、 confluence、asyncio、gevent、kafka
项目描述:该项目是爬取各个政府公开信息整合到一个手机app作信息公开,环境保护
负责模块:
负责框架底层搭建:负责tornado 底层框架的搭建,模板,url路由映射,静态文件,登陆装饰器,日志处理(logging),常用库(redis,pymysql)数据访问层的封装
使用tornado.gen模块 和asyncio模块请求第三方地址, I/O多路复用模式
根据网页页面哈希值监测网站是否改版, 监测程序的可用性和爬取数据的正确性
负责给蔚蓝地图APP提供RESTFulAPI风格接口, 展示抓取数据源, 各项污染指标信息, 信息公开
负责抓取全国各个省市和政府网站的水质年报,月报,小时报,以及各个断面和湖泊的ph值,氨氮值,溶解氧等各个指标做信息公开,用到requests(headers认证),XPath, re等解析提取, scrapy(静态页面),selenium+phantomjs
Fiddler 抓取分析常规页面请求响应报文,模拟请求通过正则匹配等获取可用信息入库
Charles 抓取分析 Flash网页类型报文,siverlight 等其他非json数据格式等网站
运用IP代理池,拨号等手段防止爬取被屏蔽封IP,运用第三方打码平台或者OCR识别验证码破解反爬
rabbitmq 配合 Logging 分类记录日志,及时查看爬取统计和结果信息
抓取数据监控:当爬虫程序异常,爬取网页发生页面变动或者数据格式异常进行邮件预警,及时排查问题
做信息公开官网展示的反爬措施,前后端分离,js混淆,headers认证,json加密,接口地址隐藏,访问频率限制,加验证码等等
接口文档编写,markdown语法,数据库文档字段注解
gevent 协程多任务的方式异步请求获取数据,IO多路复用,减少需要快速获取接口实时同步数据时间