Phantomjs和会话

时间:2013-02-12 03:14:43

标签: session cookies login phantomjs

登录后,我无法通过网站维护会话。

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

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

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

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

查看here了解更多信息。

修改: 您的cookies.txt是否包含某些内容?

答案 1 :(得分:8)

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