尝试从page中删除带有大量JS的浏览器模板中的数据。当使用 jsdom 播放无法获取任何数据时,页面可能没有足够的时间来加载或渲染。 在这种情况下如何废弃数据:使用计时器或按request
下载所有页面jsdom.env({
url: link,
scripts: ["http://code.jquery.com/jquery.js"],
done: function (errors, window) {
var $ = window.$;
var date = $('.date').text();
console.log(date);
}
});
答案 0 :(得分:3)
我的一位同事有一个基于PhantomJS的项目:https://github.com/vmeurisse/phantomCrawl。
他有一个简单的例子,看起来很像你的代码片段:
'use strict';
var PhantomCrawl = require('./src/PhantomCrawl');
var urls = [];
urls.push('http://www.bing.com');
var ptc = new PhantomCrawl({
urls: urls,
nbThreads: 4,
crawlerPerThread: 4,
maxDepth: 1
});
urls
是要抓取的网址列表。
nbThreads
是PhantomJS启动的实例数。
crawlerPerThread
是每个PhantomJS实例并行抓取的页数。
maxDepth
是当前抓取的网页跟随网页中的链接的次数。