首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heritrix的HtmlFormCredential和CredentialStore的使用

Heritrix的HtmlFormCredential和CredentialStore的使用
EN

Stack Overflow用户
提问于 2013-07-19 22:33:10
回答 1查看 556关注 0票数 1

我试图将身份验证添加到我的Heritrix配置中。我的.cxml文件有以下内容:

代码语言:javascript
复制
<bean id="preconditions" class="org.archive.crawler.prefetch.PreconditionEnforcer">
  <property name="credentialStore">
    <ref bean="credentialStore" />
  </property>
</bean>
<bean id="fetchHttp" class="org.archive.modules.fetcher.FetchHTTP">
  <property name="credentialStore">
    <ref bean="credentialStore" />
  </property>
  <property name="shouldProcessRule">
    <bean class="org.archive.modules.deciderules.DecideRuleSequence">
      <property name="rules">
        <list>
          <bean class="org.archive.modules.deciderules.recrawl.IdenticalDigestDecideRule">
          <property name="decision" value="REJECT" />
            </bean>
            <bean class="org.archive.modules.deciderules.ResourceNoLongerThanDecideRule">
            <property name="contentLengthThreshold" value="54" />
            <property name="useHeaderLength" value="true" />
            <property name="decision" value="REJECT" />
          </bean>
        </list>
      </property>
    </bean>
  </property>
</bean>
<bean id="exampleCredential" class="org.archive.modules.credential.HtmlFormCredential">
  <property name="domain" value="example.com" />
  <property name="loginUri" value="https://example.com/user?destination=%2f" />
  <property name="formItems">
    <map>
      <!-- username/password -->
      <entry key="name" value="something@something.com"/>
      <entry key="pass" value="genericpassword"/>
      <!-- hidden inputs -->
      <entry key="form_build_id" value="form-asdf" />
      <entry key="form_id" value="user_login" />
      <!-- submit -->
      <entry key="op" value="submit"/>
    </map>
  </property>
</bean>
<bean id="credentialStore" class="org.archive.modules.credential.CredentialStore">
  <property name="credentials">
  <map>
    <entry key="exampleCredential" value-ref="exampleCredential" />
  </map>
  </property>
</bean>

我还将FetchHTTP和PreconditionEnforcer的日志记录设置为be,但似乎什么都没有发生。没有从任何模块中出现日志输出,并且那些被清楚地拉下来的页面是那些未经认证的视图。我发现对于如何使用CredentialStore有点不清楚,因为我花了大量的时间阅读这些规范,这些规范在身份验证和网站方面充其量是零碎的。任何人都知道如何在Heritrix建立身份验证,请帮助。

更新:日志无法工作,因为不知道我的HERITRIX_HOME变量,所以它甚至从不读取日志配置文件。我将bean exampleCredential的域属性更改为:

代码语言:javascript
复制
<property name="domain" value="example.com" />

至:

代码语言:javascript
复制
<property name="domain" value="www.example.com" />

现在登录页面已排队,但现在记录器对所有排队的文件显示如下内容:

代码语言:javascript
复制
org.archive.crawler.prefetch.PreconditionEnforcer.innerProcessResult() PolitenessEnforcer doesn't understand uri's of type dns (ignoring)
org.archive.modules.deciderules.ResourceNoLongerThanDecideRule.evaluate() Error: Missing HttpMethod object in CrawlURI. dns:secure.www.example.com

所有的文件都不会被下载或爬行。所以,虽然我取得了进步,但它并没有给我带来任何进展。没有太多的日志信息可供删除。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 16:31:51

我还在Heritrix表单上问了这个问题:http://tech.groups.yahoo.com/group/archive-crawler/message/8235和Noah想把登录页面作为种子添加到我的爬行中。现在似乎一切正常,没有太多的问题。我的结论是,配置文件中的所有设置都是正确的,但缺少了所需的实际页面种子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17756520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档