【发布时间】:2016-07-24 12:38:27
【问题描述】:
我正在为完成一些任务而进行网络抓取。
我使用 node-js 请求模块进行页面抓取。
它运行良好,非常适合 cookie-session 等。
但在渲染 使用某些 javascript 框架构建的动态页面(如 ANGULAR 或 BACKBONE 等)时它会失败。
我正在尝试让 phantomjs 克服这个问题,因为我在 google 上发现遇到这种情况很有帮助。
我还为 phantomjs phantom 找到了一个 nodejs 桥
有了 phantomjs 和这个桥接模块,我只能做同样的事情了。
var phantom = require('phantom');
var fs = require('fs');
var sitepage = null;
var phInstance = null;
phantom.create()
.then(instance => {
phInstance = instance;
console.log("Instance created");
return instance.createPage();
})
.then(page => {
sitepage = page;
console.log("createing page");
return page.open('https://paytm.com/shop/p/carrier-estrella-plus-1-5-ton-3-star-window-ac-LARCARRIER-ESTRPLAN5550519593A34?src=grid&tracker=%7C%7C%7C%7C%2Fg%2Felectronics%2Flarge-appliances%2F1-5-ton-3-star-ac-starting-at-rs-22699%7C88040%7C1');
})
.then(status => {
//console.log(status);
console.log("getting content of page");
return sitepage.property('content');
})
.then(content => {
console.log("success");
//console.log(content);
fs.writeFile("ok.text", content);
sitepage.close();
phInstance.exit();
})
.catch(error => {
console.log("errr");
//console.log(error);
phInstance.exit();
});
上面是我正在尝试加载使用角度框架构建的动态网站页面之一的代码。
谁能指导我在上面的代码中我缺少正确的东西。
【问题讨论】:
-
我没有遇到任何问题。或任何错误。我只是想知道用js框架构建的热门废弃网页
-
那就具体问吧。
But it fails when time comes to render Dynamic pages怎么会失败?有哪些错误?只是目前您的要求太宽泛,我们无法帮助您。 “如何抓取动态网站?嗯……使用 PhantomJS” -
@Vaviloff 能否请您帮忙并添加示例如何使用它的答案
-
嗨,你解决了吗?
标签: javascript node.js web-scraping request phantomjs