【问题标题】:Phantomjs and sessionsPhantomjs 和会话
【发布时间】:2013-01-27 07:14:38
【问题描述】:

登录后,我无法通过网站保持会话浏览。

我确实可以成功登录该网站(我指定无论页面是什么,登录后您将被重定向到主页)但是我必须移动到另一个页面。首先我尝试使用 page.open() 然后使用 page.evaluate 更改 location.href 窗口属性,但不幸的是,在这两种情况下,结果都是我不再登录。我跟踪了登录状态,只是在每个页面加载事件中使用递增的 png 名称(1.png、2.png 等)呈现页面。我也尝试了 --cookies-file=cookies.txt 参数,但没有太大帮助。

我的问题是: 使用 phantomjs 在网站页面中“移动”的最佳方式是什么? 在这些情况下是否有特定的方法来处理会话(也许在每个 .open() 上手动发送 cookie,只是说)?

感谢您的帮助。

【问题讨论】:

  • 我也遇到了同样的问题。我也试过 --cookies-file 参数,我可以看到登录操作正确执行,但是当它重定向到下一页时,用户没有登录。绝对是会话问题。期待解决方案。
  • 您找到解决该问题的方法了吗?仍在苦苦挣扎,找不到任何东西来避免损害数据安全。

标签: session cookies login phantomjs


【解决方案1】:

会话需要 cookie。您必须在 phantomjs 中添加一个额外的参数。

--cookies-file=/path/to/cookies.txt

查看here 了解更多信息。

编辑: 您的cookies.txt 是否包含某些内容?

【讨论】:

  • 是的,但我仍然无法让自己保持登录状态。我还尝试删除旧的 cookie.txt 文件,再次启动脚本并查看 cookie 数据是否被正确写入,看起来是否正确。
  • @razorxan 所以你的问题似乎解决了?如果是,请将上述问题标记为正确.. 这样我们就不会留下这个问题
  • @abbood 不,他的问题没有解决。 Cookie 数据被正确写入,但他仍然失去了登录会话(就像我现在一样......)
【解决方案2】:

我在使用 cookie 文件方法时遇到了问题。该文件将被写入,我可以在文件中看到“cookie 信息”,但未来的请求将被解释为未经身份验证。作为最后的努力,我只是将 page.cookies 数组序列化为 JSON 并将其保存到文件中。我的下一个脚本将打开该文件,将其反序列化为一个变量并将 page.cookies 设置为该变量。果然这行得通!只是想我会传递它。

【讨论】:

猜你喜欢
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 2017-11-03
  • 2016-06-28
  • 2010-10-20
相关资源
最近更新 更多