【发布时间】:2015-02-20 04:59:13
【问题描述】:
我需要在 JS DOM 操作完成后获取页面生成的 HTML 源代码。为此,我使用了 Phantomas https://github.com/macbre/phantomas,但不幸的是,它没有提供传入请求标头的方法。
是否有允许传递请求标头然后获取生成的 HTML 源代码的库。
任何指针都会很有帮助
【问题讨论】:
标签: javascript jquery html html-parsing phantomjs
我需要在 JS DOM 操作完成后获取页面生成的 HTML 源代码。为此,我使用了 Phantomas https://github.com/macbre/phantomas,但不幸的是,它没有提供传入请求标头的方法。
是否有允许传递请求标头然后获取生成的 HTML 源代码的库。
任何指针都会很有帮助
【问题讨论】:
标签: javascript jquery html html-parsing phantomjs
您可以使用casperjs。
将settings 对象中的headers 传递给open() function 并使用getPageContent() 获取页面的HTML 源代码:
var casper = require('casper').create();
var headers = {
'Accept-Language': 'en-US,en;q=0.8',
'HEADER-XYZ': 'HEADER-XYZ-DATA'
};
casper.start().then(function () {
this.open("http://casperjs.org", {
method: 'get',
headers: headers
});
});
casper.then(function() {
console.log(this.getPageContent());
});
casper.run(function() {
this.exit();
});
【讨论】:
您可以使用"PhantomJS WebKit scriptable"。
指定customHeaders 并获取page.content:
var webPage = require('webpage');
var page = webPage.create();
page.customHeaders = {
"X-Test": "foo",
"DNT": "1"
};
page.open('http://phantomjs.org', function (status) {
var content = page.content;
console.log('Content: ' + content);
phantom.exit();
});
将其保存到test.js 并运行:
phantomjs test.js
【讨论】:
phantomjs test.js http://phantomjs.org