灵活配置

项目的所有配置文件均在spider.war/WEB-INF文件夹下

输出网页数据至Redis Channel

找到 mvc-dispatcher-servlet.xml 配置文件,增加redis数据输出管道:

    <property name="pipelineList">
        <list>
            <!--Redis输出-->
            <ref bean="commonWebpageRedisPipeline"/>
            <ref bean="commonWebpagePipeline"/>
        </list>
    </property>

staticvalue.json 配置文件中,修改如下内容:

  "needRedis": false,
  "redisPort": 6379,
  "redisHost": "localhost",
  "webpageRedisPublishChannelName": "webpage",
  • needRedis设置为true将在系统启动时检查redis配置
  • redisPort redis的端口
  • redisHost redis的服务器地址
  • webpageRedisPublishChannelName redis发布不通道的名称

输出网页数据至任意数据源

写一个类实现 Pipeline 接口,然后在 mvc-dispatcher-servlet.xml 配置文件中配置这个数据处理类, 爬虫框架会把每一个采集并处理好的的网页传入 process 方法,然后通过自己的代码将这些网页数据存储至你想要的位置即可,可以参考本平台实现的Redis pipeline.本平台默认的ES输出CommonWebpagePipeline中有一个 convertResultItems2Webpage 便利方法,可以将Webmagic框架的 ResultItems 对象转换为一个 Webpage 对象方便处理.

使用自定义的下载器

如果需要使用自定义的Downloader,只需要在 com.lingjoin.gather.common.impl.CommonSpider#makeSpider 中将Downloader设置为自己实现的即可。

配置文件解释

本系统配置文件名称为 staticvalue.json :

    {
      "esHost": "localhost",
      "esClusterName": "elasticsearch",
      "commonsIndex": "commons",
      "maxHttpDownloadLength": 1048576,
      "commonsSpiderDebug": false,
      "taskDeleteDelay": 1,
      "taskDeletePeriod": 2,
      "limitOfCommonWebpageDownloadQueue": 100000,
      "needRedis": false,
      "redisPort": 6379,
      "redisHost": "localhost",
      "webpageRedisPublishChannelName": "webpage",
      "commonsWebpageCrawlRatio": 2
    }
  • esHost:es服务器地址
  • esClusterName:es集群名称
  • commonsIndex:网页数据在es中存储的index名称
  • maxHttpDownloadLength: 如果网页超过这个大小则不再下载这个网页
  • commonsSpiderDebug:置为true则在爬虫管理系统的爬虫运行日志中可以看到更多的错误信息
  • taskDeleteDelay: 自动删除任务记录延时几小时启动
  • taskDeletePeriod: 每几小时删除一次已完成的任务记录
  • limitOfCommonWebpageDownloadQueue: 最大网页下载队列长度
  • commonsWebpageCrawlRatio: 如果抓取的网页超过需要网页commonsWebpageCrawlRatio倍,爬虫退出

results matching ""

    No results matching ""