heritrix3.1自定义ExtractorHTML

最近应需求使用heritrix3.1来爬取网络资源,感觉网上关于heritrix3.1还是很少,也可能是我没有找到。在这里呢想分享一下,关于url提取内容,我遇到的问题呢,种子url是一个ajax的请求地址,返回的json数据,heritrix将返回当做html来处理了,所以重写了ExtractorHTML来解析json来获取想要的uri。

原ExtractorHTML位置
package org.archive.modules.extractor;
将ExtractorHTML复制出一份修改extract方法如下:

void extract(CrawlURI curi, CharSequence cs) {
        Matcher tags = TextUtils.getMatcher("<a target=\"_blank\" uigs=\"account_name_0\" href=\"(.+?)\"",cs);
        String uri = curi.getURI();
        /***********************************************************/
        while(tags.find()){
            String group = tags.group(1);
            if(group!=null) {
                try {
                    Link.addRelativeToBase(curi, 6000, group, new SimpleLinkContext("=JS_MISC"), Hop.SPECULATIVE);
                    break;
                } catch (URIException e) {
                    e.printStackTrace();
                }
            }
        }
        /***********************************************************/
        TextUtils.recycleMatcher(tags);
    }

接下来就要修改配置文件了,crawler-beans.cxml
将原extractorHttp的位置前设置自定义的
customExtractorHTML

 <bean id="customExtractorHTML" class="org.test.extractor.SougouExtractorHTML">
 </bean>
 <bean id="extractorHttp" class="org.archive.modules.extractor.ExtractorHTTP">
 </bean>

并将<bean id="fetchProcessors" class="org.archive.modules.FetchChain">中原extractorHttp更换成自定义的customExtractorHTML

<!-- ...extract outlinks from HTML content... -->
    <ref bean="sougouExtractorHTML"/>
    <!-- ...extract outlinks from CSS content... -->
    <ref bean="extractorCss"/>
    <!-- ...extract outlinks from Javascript content... -->
    <ref bean="extractorJs"/>
    <!-- ...extract outlinks from Flash content... -->
    <ref bean="extractorSwf"/>

那么接下来这个Job就会走我们自定义的ExtractorHttp了。

以上是我自己的一些改动,若有更好的办法望指教。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,991评论 6 342
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 12,806评论 4 46
  • 总结一下之前的spider,总的来说,Spider类就是定义了如何爬取某个(或某些)网站。包括了爬取的动作以及如何...
    王小鱼鱻阅读 1,250评论 0 2
  • 01 “方琳,我想清楚了,不会再继续喜欢你。”你站在我侧旁,非常平静的说完这句话,云淡风轻,好像在讲一件与你无关的...
    苏小木堇Amy阅读 368评论 3 6