如何使用CasperJS发送cookie

时间:2015-01-15 15:39:01

标签: javascript cookies phantomjs casperjs

我认为我发送的每个请求都是在没有cookie的情况下发送的。

当我听这样的onResourceRequested事件时:

this.page.onResourceRequested = function(request) {
    utils.dump(request);
};

每个请求都有相同形式的标题:

"headers": [
    {
        "name": "User-Agent",
        "value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"
    },
    {
        "name": "Accept",
        "value": "text/css,*/*;q=0.1"
    },
    {
        "name": "Referer",
        "value": "https://some_site.com/page"
    }
],

我从来没有得到应该在那里的cookie的标题..

当我尝试查看cookie时 - 我运行它:

utils.dump(this.page.cookies);

我得到了许多Cookie条目的列表。

我认为这在我的抓取脚本上给了我一些错误。

你的想法? 感谢。

修改

我尝试发出POST请求来下载文件。 我可以登录网站,浏览几页,进入下载页面 - 然后,当我发送请求时,我收到一条消息"错误:要注册该网站,您必须启用浏览器接受cookies。"

这就是为什么它令人困惑 - 我可以登录并浏览网站(所以我必须传递一些cookie)但我无法下载(所以我可能没有这里的cookie ...)

2 个答案:

答案 0 :(得分:0)

启动CasperJS以保存cookie(并在会话之间重复使用)时提供cookiejar。

命令行选项:

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

完整:

$ casperjs --cookies-file=/path/to/cookies.text myscript.js 

答案 1 :(得分:0)

使用命令行选项:

casperjs --cookies-file=/path/cookies.text script.js