如何使用Phantomjs的cookie API?

时间:2013-01-08 17:47:34

标签: cookies phantomjs

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

所以我顽固地登录了网站,打开了萤火虫,并在萤火虫中输入了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

但结果仍然是登录页面。

1 个答案:

答案 0 :(得分:6)

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

另一个选择是使用像fiddler这样的代理检查请求,比较从有效的firefox发出的请求和从未经过身份验证的phantomjs发出的请求。标题中的信息应告诉您缺少的内容。

您可以使用phantomjs提供的功能添加Cookie:

http://phantomjs.org/api/webpage/method/add-cookie.html