【问题标题】:Nodejs request - CAS authentication scrapingNodejs 请求 - CAS 身份验证抓取
【发布时间】:2015-12-04 05:09:42
【问题描述】:

我正在尝试抓取一个使用 CAS 进行身份验证的网站。

我目前正在运行 node.js request 库来发出请求,并运行 cheerio 来进行正文解析。我的应用架构如下所示:

1.进入 login.XXX.com 的 CAS auth 登录页面

我抓取隐藏字段以使我的 POST 请求看起来与我在浏览器中所做的完全一样。创建饼干罐。好的。

2。登录 - POST 请求。

我使用相同的 cookie jar 发送所有数据,并启用了 followAllRedirects。我可以看到我已成功登录,因为我收到了正确的消息。此外,cookie CASUSERNAMECASTGC 被保存到 cookie jar 中。

3.尝试前往 service.XXX.com 进行服务

我使用我的 cookie jar 向服务发出了一个简单的 GET 请求......并且......我没有登录。我真的看不到在途中是否有任何 XHR 请求完成,我没有'真的不知道如何检查它或如何使自己通过身份验证。

非常感谢您在登录后如何访问该服务的任何想法。

【问题讨论】:

    标签: node.js web-scraping request cas


    【解决方案1】:

    我自己解决了这个问题。

    问题出在哪里:

    当我的脚本尝试进入服务 (service.XXX.com) 时,服务站点向 CAS 登录服务器 (login.XXX.com) 发送了 XHR 请求并尝试重定向回请求的服务,但不知何故导致我的应用程序进入无限重定向循环。

    解决方案:

    我不得不一个接一个地请求,并且小心地手动重定向(发出 GET 请求)到标头 (headers.location) 中的站点。 XHR 请求在途中创建了 PHPSESSID,因此我只需将其保存在我的 cookie jar 中,然后继续使用我想要的服务站点。

    希望它对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多