首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用ManifoldCF或nutch抓取具有SAML身份验证的网站?

如何使用ManifoldCF或nutch抓取具有SAML身份验证的网站?
EN

Stack Overflow用户
提问于 2016-08-08 22:07:43
回答 3查看 1.3K关注 0票数 18

我正在尝试抓取一个网站,更具体地说是一个使用ManifoldCFGoogle Site,它具有SAML身份验证,并将抓取的数据索引到Apache Solr中。但当我抓取网址,它给我的302重定向到登录页面,然后说RESPONSECODENOTINDEXABLE

我不确定我的身份验证是否正确。在manifoldCF中,我们可以选择HTTP basic身份验证、NTLM authenticationSession-based访问凭据身份验证方法。我使用的是Session based身份验证方法,它看起来更像是基于表单的身份验证,而不是SAML身份验证。

有没有人用具有SAML身份验证的manifoldCF抓取过网站?如果不是manifoldCF,有没有人能够通过Apache Nutch实现这一点,因为我担心它也只提供HTTP basic、DigestNTLM身份验证。

任何洞察力都会有所帮助。可以提供有关该问题的更多信息,如果在座的任何人认为可以轻松完成的话。基本上,当我爬行https://sites.google.com/a/my-sub-domain.com时,它会重定向到单点登录页面,爬虫拒绝爬行,并给出一个302错误。这是一个基于内部网的网站。

EN

回答 3

Stack Overflow用户

发布于 2018-07-07 01:30:18

不支持使用SAML的Nutch forSSO身份验证。你需要通过编写你的自定义插件来处理它。我们已经扩展了协议selenium插件来处理SAML流。

票数 1
EN

Stack Overflow用户

发布于 2017-06-02 20:31:54

不确定这是否有帮助,就试一下吧。在nutch中,我们可以提供登录页面的凭据,在conf目录中有httpclient-auth.xml文件。在那里你可以提供你的主机名和凭证。

代码语言:javascript
复制
<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

票数 0
EN

Stack Overflow用户

发布于 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。

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

https://stackoverflow.com/questions/38831413

复制
相关文章

相似问题

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