• 基于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。但是...不知道咋弄啊,改源码?复写?)

  • 相关阅读:
    mybatis映射文件之获取自增的主键
    mybatis映射文件之基本的增删改查
    mybatis之全局配置文件中的标签
    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.gong.mybatis.dao.EmployeeMapper.getEmpById
    mybatis之第一个mybatis程序(二)
    mybatis之第一个mybatis程序(一)
    mybatis之在eclipase中的mybatis配置文件中按下"alt+/"提示相应的标签
    springmvc之与spring进行整合
    使用 JAVA 中的动态代理实现数据库连接池
    ThreadLocal源代码分析
  • 原文地址:https://www.cnblogs.com/core404/p/6743609.html
Copyright © 2020-2023  润新知