Nutch2 之 InjectorJob

版本: Nutch2.2.1

类:InjectorJob
源码:src/java/org/apache/nutch/crawl/InjectorJob.java


这个类从文本文件(seeds_file)中读取URLs,执行若干初始化操作后,插入到WebPage数据库。

一、解析种子文件

    seeds_file中每个url占一行,
    而且可以选择设定一些metadata:
     - nutch.score : 指定网页权重,对应webpage中的score字段,默认值是1
     - nutch.fetchInterval : 指定抓取间隔,对应webpage中的fetchInterval字段,默认值是2592000
     - [自定义KEY] : 存储于webpage中的metadata字段 
    metadata间分隔符为'\t',key与value之间分融符为'='
    例:
    http://www.sina.com.cn/ \t nutch.score=10 \t nutch.fetchInterval=2592000 \t type=news

二、过滤

    格式化URl,并按规则过滤

    url = urlNormalizers.normalize(url, URLNormalizers.SCOPE_INJECT);
    url = filters.filter(url); // filter the url



三、生成webpage

       

    WebPage row = new WebPage();
    row.setFetchTime(curTime);
    row.setFetchInterval(customInterval);
    //...
    row.putToMetadata(new Utf8(keymd), ByteBuffer.wrap(valuemd.getBytes()));
    //...
    row.setScore(scoreInjected);
    //...
    row.putToMarkers(DbUpdaterJob.DISTANCE, new Utf8(String.valueOf(0)));
    //...



四、存储webpage

    执行存储动作的类,在nutch-site.xml中配置,以mysql为例:

    <property>
            <name>storage.data.store.class</name>
            <value>org.apache.gora.sql.store.SqlStore</value>
            <description>*</description>
    </property>


    类SqlStore在gora的sql扩展包里面,源码可以在这儿下载:http://search.maven.org/remotecontent?filepath=org/apache/gora/gora-sql/0.1.1-incubating/gora-sql-0.1.1-incubating-sources.jar  

    WebPage对象与mysql表字段的对应关系在gora-sql-mapping.xml中指定


参考:

    WebPage的字段解释:http://blog.csdn.net/itufo/article/details/20535539
    WebPage的入库过程:http://blog.csdn.net/itufo/article/details/20727597



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值