phantomjs - 存储和发送 cookie

phantomjs - store and send cookies

我按如下方式使用 PhantomJS 从网站检索和解析数据。

const phantom = require('phantom');
const url = 'https://whosebug.com/'

let _ph, _page, _outObj;
phantom.create()
.then( (ph) => {
    _ph = ph;
    return _ph.createPage();
}).then( (page) => {
    _page = page;
    return page.open(url);
}).then( (status) => {
    console.log(`Status: ${status}`);
    return _page.property('content');
}).then( (data) => {
    console.log(data);
    _page.close();
    _ph.exit();
}).catch( (e) => console.log(e));

我还需要做的是存储服务器发送的 cookie,并将它们包含在对服务器的后续请求中 - 我该怎么做?

PhantomJS 能够自行存储和加载 cookie,根据 docs 有一个 cli 选项:

--cookies-file=/path/to/cookies.txt specifies the file name to store the persistent Cookies

因此,对于 phantom 节点模块,您可以在创建浏览器时传递此选项:

phantom.create(['--cookies-file=/path/to/cookies.txt']).then(...)