我使用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,并将其包含在后续的服务器请求中 - 我该如何处理?
答案 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