试图让jsdom(node.js模块)在windows上工作。 不停地抱怨没有为我的节点版本构建。使用node.js刮去Windows上的网站
在Linux机器上安装节点(来自源的相同版本,0.5.9),并且节点将其震荡。 然后我把它复制到Windows机器(下node_modules)
仍然没有去...
任何想法?或解析HTML的其他建议我从对节点请求的响应中获得?
通过jsdom使用jquery会很好。
干杯。
试图让jsdom(node.js模块)在windows上工作。 不停地抱怨没有为我的节点版本构建。使用node.js刮去Windows上的网站
在Linux机器上安装节点(来自源的相同版本,0.5.9),并且节点将其震荡。 然后我把它复制到Windows机器(下node_modules)
仍然没有去...
任何想法?或解析HTML的其他建议我从对节点请求的响应中获得?
通过jsdom使用jquery会很好。
干杯。
我不确定你想要做什么,但node.io has a scraping framework可能符合法案。
如果node.js不是绝对必须的,请查看我们的SO-ist @nrabinowitz同行pjscrape。它已经过测试和证明。
此外,node-scraper似乎是您的工作的正确工具,有222名观察员和11名叉子,它似乎也非常活跃。用例可以在readme或right here on SO中找到。
我很抱歉地说,jsdom(> = 0.2.3)目前需要一个C++插件,它不能很好地与windows搭配使用。我认为你最好的选择是尝试安装[email protected],并解决在jsdom窗口中执行javascript所导致的内存泄漏问题。
变通方法包括:
document.body.innerHTML = '..new markup..';
方式替换DOM的意图是将来自C++附加远,但不幸的是,目前这不可能。
我刚刚玩Node.js的模块Cheerio,并与jsdom相比,它是:
http://matthewmueller.github.com/cheerio/
刮例如:
var request = require('request'),
cheerio = require('cheerio');
request('http://encosia.com', function(error, response, body) {
// Hand the HTML response off to Cheerio and assign that to
// a local $ variable to provide familiar jQuery syntax.
var $ = cheerio.load(body);
// Exactly the same code that we used in the browser before:
$('h2').each(function() {
console.log($(this).text());
});
});
谢谢,我会检查了这一点为好。 – Shh
不行。抱怨一个缺失的模块,甚至没有告诉我它是哪一个。 – Shh
如果您使用Windows,您需要查看package.js文件并手动下载解决依赖关系所需的模块。或者你可以在Windows上尝试npm的实验版本,并执行npm install([检查自述文件](http://npmjs.org/doc/README.html))。 – hross