成功将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>
搜索了一些链接,但无法解决。
感谢。
答案 0 :(得分:0)
您如何识别需要提交的表单?在httpclient-auth.xml
文件中,您输入以下内容:
loginFormId="user-login"
所以它试图通过id找到登录表单的插件,意味着表单必须具有user-login
id,将此值更改为您尝试的网页中表单登录的正确ID抓取。