基于webmagic爬虫框架的项目记录
1、为什么选定了webmagic?
webmagic的doc文档地址:http://webmagic.io/docs/zh/
刚开始做的时候采用的是 httpclient+htmlparser+dom4j,主要说下为什么使用了dom4j,现在的webmagic也是采用了dom4j,这里主要是需要解析一个网站,这个网站的地址比较特殊,翻页地址一次性存储到了js方法里,普通的html节点无法获取到,所以采用dom4j就是为了获取js里的地址内容。
1) 后来2.0版本直接换成了webmagic,这个比较好用,优点:
2) 内置的pipline接口,可以定制开发,我们的爬虫项目要求本地文件一份,数据库一份,定制日志输出,新闻图片的下载等;
3) 可以记录爬过的地址,方便去重;
4) 可以start和shutdown爬虫;
5) 线程池;
6) 还有好多慢慢体会吧。
顺便说下python的爬虫,当时在选用webmagic之前特地学的Python,怎么说呢,适合没啥基础的学,上手快。没有feel,其实。。。就是不保密,成果很容易被copy另一家GS。
2、实现的功能点
基本的爬虫功能:爬取页面特定节点,节点信息处理。
日志前端实时打印,目的就是可以看到爬取到哪了,还有就是页面下载到本地的进度也实时打印,日志打印到前端采用的websocket。
还有就是CRUD,例如:网站的xpath、url、备份到其他数据库的功能。
定时爬取等等。
3、难点(坑)
新闻类的么,网站页面还是比较好分析的,没那么多的接口需要对接分析。
日志前端打印的websocket,注意jdk版本,tomcat版本好像也没啥了。给个学习的连接:http://blog.csdn.net/neutrojan/article/details/46119645
报jsr 356调整版本。
注意xpath和正则吧,得学习下。地址:
http://www.w3school.com.cn/xpath/xpath_syntax.asp
还有log4j的日志,之前不怎么深入得研究过,再次被教育了。放个地址:
http://blog.csdn.net/huangxinyu_it/article/details/42239629
http://blog.csdn.net/u012422446/article/details/51199724
定时任务:http://blog.csdn.net/tsyj810883979/article/details/8481621
暂停线程池里的线程:研究一天半,没啥思路,各路网友提供下方向吧,在此跪谢。(ps:原来是想设计一个公共变量,每次启动新线程去判断。如果暂停就是变为false。但是...不知道咋弄啊,改源码?复写?)