我正在尝试抓取一个网站,更具体地说是一个使用ManifoldCF
的Google Site
,它具有SAML身份验证,并将抓取的数据索引到Apache Solr中。但当我抓取网址,它给我的302
重定向到登录页面,然后说RESPONSECODENOTINDEXABLE
。
我不确定我的身份验证是否正确。在manifoldCF中,我们可以选择HTTP basic
身份验证、NTLM authentication
和Session-based
访问凭据身份验证方法。我使用的是Session based
身份验证方法,它看起来更像是基于表单的身份验证,而不是SAML
身份验证。
有没有人用具有SAML
身份验证的manifoldCF抓取过网站?如果不是manifoldCF
,有没有人能够通过Apache Nutch实现这一点,因为我担心它也只提供HTTP
basic、Digest
和NTLM
身份验证。
任何洞察力都会有所帮助。可以提供有关该问题的更多信息,如果在座的任何人认为可以轻松完成的话。基本上,当我爬行https://sites.google.com/a/my-sub-domain.com时,它会重定向到单点登录页面,爬虫拒绝爬行,并给出一个302错误。这是一个基于内部网的网站。
发布于 2018-07-07 01:30:18
不支持使用SAML的Nutch forSSO身份验证。你需要通过编写你的自定义插件来处理它。我们已经扩展了协议selenium插件来处理SAML流。
发布于 2017-06-02 20:31:54
不确定这是否有帮助,就试一下吧。在nutch中,我们可以提供登录页面的凭据,在conf目录中有httpclient-auth.xml文件。在那里你可以提供你的主机名和凭证。
<auth-configuration>
<credentials username="admin" password="admin123">
<authscope host="hostname" realm="login"/>
<default/>
</credentials>
</auth-configuration>
类似地,您可以向此配置添加任意数量的凭据。
要抓取https站点,请在nutch-conf.xml中将plugin.includes属性从protocol-http更改为protocol-httpclient
发布于 2019-01-22 02:11:21
我们修改了Nutch协议中的逻辑-selenium插件来处理SSO流。您需要等待重定向到SSO页面。然后使用selenium,您就可以处理SSO。再次等待SSO后重定向到原始页面。
如果需要两个因素的身份验证,那么事情就变得复杂了。在这种情况下,您可以配置google authenticator (如果您的IdP允许的话)。你可以用它来获取TOTP。
对于身份验证后的爬行文件,没有通常的方法。您可以配置驱动程序始终下载文件,然后使用docwnlaoded文件。
您可以使用另一个http客户端来处理身份验证流。如果您需要动态页面的内容(在所有JS和Ajax请求完成之后),那么selenium是最好的选择,如果您正在使用它,您可以将auth part移到selenium。
https://stackoverflow.com/questions/38831413
复制相似问题