美文网首页
heritrix3.1自定义ExtractorHTML

heritrix3.1自定义ExtractorHTML

作者: ZaneInTheSun | 来源:发表于2017-10-31 20:25 被阅读0次

    最近应需求使用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了。

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

    相关文章

      网友评论

          本文标题:heritrix3.1自定义ExtractorHTML

          本文链接:https://www.haomeiwen.com/subject/ldkipxtx.html