phantomjs - 存储和发送cookie

时间:2018-05-22 05:55:03

标签: node.js phantomjs

我使用PhantomJS如下检索和解析网站上的数据。

const phantom = require('phantom');
const url = 'https://stackoverflow.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,并将其包含在后续的服务器请求中 - 我该如何处理?

1 个答案:

答案 0 :(得分:1)

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

  

> Bathy_clopped class : RasterLayer dimensions : 3377, 2922, 9867594 (nrow, ncol, ncell) resolution : 0.008333333, 0.008333333 (x, y) extent : 84.10833, 108.4583, -4.05, 24.09167 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 data source : in memory names : w001000 values : -6138, -1 (min, max) attributes : ID COUNT from: -11584 1 to : -1 676804 指定存储持久性Cookie的文件名

因此,使用--cookies-file=/path/to/cookies.txt节点模块,您可以在创建浏览器时传递此选项:

phantom