Cookies 如何使用Phantomjs';CookieAPI?

Cookies 如何使用Phantomjs';CookieAPI?,cookies,phantomjs,Cookies,Phantomjs,我正在尝试使用phantomjs的exmaple文件夹中的rasterize.js将网页捕获为PDF格式。我遇到的问题是网页需要用户登录。然后我看到Phantomjs有一个cookie选项。该网站由Django提供电源,以备不时之需 因此,我很有男子气概地登录该网站,打开firebug,并在firebug中键入document.cookie。我得到了cookie设置,并将其放入我的cookies.txt [http://localhost:7000] csrftoken: f3da886168f

我正在尝试使用phantomjs的exmaple文件夹中的rasterize.js将网页捕获为PDF格式。我遇到的问题是网页需要用户登录。然后我看到Phantomjs有一个cookie选项。该网站由Django提供电源,以备不时之需

因此,我很有男子气概地登录该网站,打开firebug,并在firebug中键入
document.cookie
。我得到了cookie设置,并将其放入我的cookies.txt

[http://localhost:7000]
csrftoken: f3da886168fae33b840e7f6c93240dff
sessionid: 27e90c3214b0ec94dadc739665724708
django_language: en
然后我使用rasterize.js创建pdf,如下所示:

phantomjs --cookies-file=cookies.txt examples/rasterize.js http://localhost:7000/reports /tmp/report.pdf

但是结果仍然是登录页面。

您是否尝试过在PhantomJS中自动化登录过程,确保包含cookies参数?通过这种方式,phantomjs可以像浏览器一样使用cookie对用户进行身份验证

另一种选择是使用类似fiddler的代理检查请求,比较firefox发出的有效请求和phantomjs发出的未经身份验证的请求。标题中的信息应该告诉您缺少什么

您可以使用phantomjs提供的函数添加cookie:


我没有用户密码,只有csrftoken和sessionid。我发现使用--cookies file参数并没有从文件中加载cookie,而是将cookie保存到文件中。我尝试使用addCookie函数,但无法使用
{'csrftoken':'','sessionid':''}
等格式。有什么想法吗?谢谢我认为你的addCookie语法错误-请看,我已经更新了答案以包含addCookie方法。。good callI已经看到了该函数,但当我执行
phantom.addCookie({'domain':'localhost','csrftoken':'f3da886168fae33b840e7f6c93240dff')时,它不起作用
AddCookie解决方案有效,我的坏消息是它无效,我输入了错误的url。谢谢