zoukankan      html  css  js  c++  java
  • 【Heritrix基础教程之1】在Eclipse中配置Heritrix


    一、新建项目并将Heritrix源代码导入

    1、下载heritrix-1.14.4-src.zip和heritrix-1.14.4.zip两个压缩包,并解压,以后分别简称SRC包和ZIP包;
    2、在Eclipse下新建Java项目,取名Heritrix.1.14.4;
    3、复制SRC包以下src/java目录下org和st两个目录到项目中的src包下;
    4、复制SRC包下src下conf文件夹到项目根文件夹;
    5、复制SRC包下lib文件夹到项目根文件夹;
    6、复制ZIP包下webapps文件夹到项目根文件夹;



    7、改动项目下conf下heritrix.properties文件

    heritrix.version = <span style="color:#ff0000;">1.14.4</span>
    
    # Location of the heritrix jobs directory.
    heritrix.jobsdir = jobs
    
    # Default commandline startup values.
    # Below values are used if unspecified on the command line.
    heritrix.cmdline.admin = <span style="color:#ff0000;">admin:admin</span>
    heritrix.cmdline.port = <span style="color:#ff0000;">8080</span>
    主要改动 version, username、password及端口号

    8、在项目上右键选择构建路径->配置构建路径->库选项卡->加入Jar,将lib文件夹下的全部.jar文件选中,点击完毕!
    9、在项目/src/org.archive.crawler包下Heritrix.java上点击右键选Run as->Run Configurations->Classpath->User Entries->Advanced->Add Folder->选择项目下conf目录,最后点击Run


    然后,就能够从http://127.0.0.1:8080/中登录系统。



    在Liunx上执行heritrix

    (1)export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/home/jediael/Heritirx1.14.4/lib/*:/home/jediael/Heritirx1.14.4/bin/*:/home/jediael/Heritirx1.14.4/conf/*
    (2)cp -r webapps/ bin/
    (3)cd bin
     (4)java org.archive.crawler.Heritrix

    注意此种方法仅仅能在本机上通过127.0.0.1来进行訪问,由于代码中写了:

            final String ROOTURI = "127.0.0.1:" + Integer.toString(port);
            String selfTestUrl = "http://" + ROOTURI + '/';

    即仅仅用于本机測试。

    二、配置爬虫任务并開始下载

    1、登录系统 admin/admin


    2、点击Jobs--->create new job---->with defaults


    每次新建一个job,都等于创建一个新的order.xml。在Heritrix中,每一个任务相应一个order.xml,用于描写叙述任务的属性。它用于指定Job的Processor类、Frontier类、Fetcher类、抓取时的最大线程数、最长超时等属性。



    3、输入基本信息,注意seeds中最后必须有一个"/"



    4、选择下边的"Modules",进入Module配置页(Heritrix的扩展功能都是通过模块概念实现的,能够实现自己的模块完毕自己  想要的功能)。当中第一项 "Select Crawl Scope" 使用默认的"org.archive.crawler.deciderules.DecidingScope"     。倒数第三项 "Select Writers " 删除默认的 "org.archive.crawler.writer.ARCWriterProcessor" ,后加入  "org.archive.crawler.writer.MirrorWriterProcessor",这样运行任务的时候抓取到的页面会以镜像的方式放在本地的 文件夹结构中,而不是生成ARC存档文件。



     
    5、选择"Modules"右边的"Submodules",在第一项内容中 "crawl-order ->scope->decide-rules->rules" 删除掉当中的 "acceptIfTranscluded" (org.archive.crawler.deciderules.TransclusionDecideRule) 的这一项抓取作用域的 规则。否则当Http请求返回301或者302时Heritrix会去抓取其它域下的网页。 
     
    6、在WUI的第二行导航栏中选择"Settings"进入Job的配置页面,当中主要改动两项:http-headers 下的user-agent 和from,他们的"PROJECT_URL_HERE" 和 "CONTACT_EMAIL_ADDRESS_HERE" 替换为自己的内容 ("PROJECT_URL_HERE" 要以 "http://" 开头)
     
    7、在WUI的第二行导航栏中选择最右边的"Submit job"
     
    8、在WUI的第一行导航栏中选择第一项的"Console",点击"Start",抓取任务正式開始,时间长短有网络状况和所抓取站点的 深度有关。点击"refresh"能够监控下载情况



    还可点击logs等观察日志。

    9、默认情况下,文件下载至"项目位置jobs"。


    三、一些说明

    1、创建项目后,Heritrix中报错:sun.net.www.protocol.file.FileURLConnection,原由于sun包是受保护的包,默认仅仅有sun公司的软件才干使用。Eclipse会报错,把对保护使用waring就能够了。

    过程例如以下:Windows -> Preferences -> Java -> Compiler -> Errors/Warnings-> Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning



    2、在进入module配置页,若发现全部的配置能够删除,移动,可是不能够加入和改动,没有可选的下拉框。原由于配置文件找不到,应该在classpath标签页加入配置文件的路径。

    即第一部分的第9步。

    3、问题: thread-10 org.archive.util.ArchiveUtils.<clinit>() TLD list unavailable
    java.lang.NullPointerException
    at java.io.Reader.<init>(Unknown Source)
    at java.io.InputStreamReader.<init>(Unknown Source)
    at org.archive.util.ArchiveUtils.<clinit>(ArchiveUtils.java:759)
    解决:将heritrix-1.14.4-src.zip解压中src/resources/org/archive/util中tlds-alpha-by-domain.txt文件拷贝到project中org.archive.util包下。


    四、Modules中的一些配置项

    在Modules界面中,共同拥有8个选项须要配置,包含下面

    1、Crawl Scope

    用于配置抓取范围。选项请见下图。

    依据名称能够直观的知道抓取范围,默认是BroadScope,即不限制范围。

    从下拉框中选择某一项后,点击chang按键,则下拉框上面的解释会对应的发生变化,描写叙述当前选项的特征。



    2、URI Frontier

    用于确定待抓取的url的顺序,亦即对应的算法。默认项为BdbFrontier。


    3、Pre ProcessorsProcessors that should run before any fetching

    在抓取前,处理器对一些先决条件做的推断。比方推断robot.txt等信息,它是整个处理器链的入口。


    4、FetchersProcessors that fetch documents using various protocols

    指定解释、提取哪些类型的文件


    5、ExtractorsProcessors that extracts links from URIs

    用于提取当前获取到文件的信息。


    6、Writers:Processors that write documents to archive files

    选择保存的方式,经常使用的有2种:

    org.archive.crawler.writer.MirrorWriterProcessor:保存镜像,即将文件直接下载下来。

    org.archive.crawler.writer.ARCWriterProcessor:以归档的格式下载下来,此时文件不可直接查看。此项为default模块的默认选项。


    7、Post Processors Processors that do cleanup and feed the Frontier with new URIs

    抓取后的收尾工作。


    8、Statistics Tracking

    用于一些统计信息。



    五、Setting中的一些配置项


    改动下载文件的路径



  • 相关阅读:
    BZOJ 2400: Spoj 839 Optimal Marks (按位最小割)
    bzoj4873: [Shoi2017]寿司餐厅(最大权闭合子图)
    bzoj1497: [NOI2006]最大获利(最大权闭合子图)
    bzoj1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
    bzoj1024: [SCOI2009]生日快乐
    bzoj2761: [JLOI2011]不重复数字
    bzoj1257: [CQOI2007]余数之和sum
    bzoj2456: mode
    bzoj1831: [AHOI2008]逆序对(DP+双精bzoj1786)
    bzoj2431: [HAOI2009]逆序对数列
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4014317.html
Copyright © 2011-2022 走看看