Solr 6.5与nutch 1.12

时间:2017-07-06 11:14:23

标签: authentication solr web-crawler nutch

成功将nutch 1.12与solr 6.5连接,并抓取未经过身份验证的网站。在尝试抓取经过身份验证的网站时,我无法继续使用它。任何人都可以帮助克服它。

错误:

java.lang.RuntimeException: java.lang.IllegalArgumentException: No form exists: user-login
    at org.apache.nutch.protocol.httpclient.Http.resolveCredentials(Http.java:485)
    at org.apache.nutch.protocol.httpclient.Http.getResponse(Http.java:180)
    at org.apache.nutch.protocol.http.api.HttpBase.getProtocolOutput(HttpBase.java:261)
    at org.apache.nutch.fetcher.FetcherThread.run(FetcherThread.java:295)
Caused by: java.lang.IllegalArgumentException: No form exists: user-login
    at org.apache.nutch.protocol.httpclient.HttpFormAuthentication.getLoginFormParams(HttpFormAuthentication.java:183)
    at org.apache.nutch.protocol.httpclient.HttpFormAuthentication.login(HttpFormAuthentication.java:95)
    at org.apache.nutch.protocol.httpclient.Http.resolveCredentials(Http.java:483)

的HttpClient-auth.xml:

 <auth-configuration>
    <credentials authMethod="formAuth"
            loginUrl="<url>"
            loginFormId="user-login" 
            loginRedirect="true">
    <loginPostData>
      <field name="name"
          value="*<name>*"/>
      <field name="pass"
          value="*<password>*"/>
      <field name="op"
          value="Log in"/>
    </loginPostData>
   </credentials>
</auth-configuration>

搜索了一些链接,但无法解决。

感谢。

1 个答案:

答案 0 :(得分:0)

您如何识别需要提交的表单?在httpclient-auth.xml文件中,您输入以下内容:

loginFormId="user-login" 

所以它试图通过id找到登录表单的插件,意味着表单必须具有user-login id,将此值更改为您尝试的网页中表单登录的正确ID抓取。