我试图抓一个非常老的页面,看起来它是用FrontPage构建的,甚至只是粘贴在Word文档中。它充满了可以在一个单词的中间自发停止和开始的字体标签,或者在随机不同的树深处自然停止和开始。
我不是在寻找任何可以解析不良XML的工具,我已经在使用Html Agility Pack了。当我说格式错误的HTML时,我的意思是它不是从数据库输出的,没有任何一致的模式,但在屏幕上它看起来很好。
我可以使用哪些技术和工具?
答案 0 :(得分:1)
我会在Nodejs中使用cheerio。它复制了与jQuery相同的api,这使得解析格式错误的html变得非常容易。使用Javascript进行刮擦有很多原因。
这是取自node.io,
的示例var request = require('request')
, cheerio = require('cheerio')
, async = require('async')
, format = require('util').format;
var reddits = [ 'programming', 'javascript', 'node' ]
, concurrency = 2;
async.eachLimit(reddits, concurrency, function (reddit, next) {
var url = format('http://reddit.com/r/%s', reddit);
request(url, function (err, response, body) {
if (err) throw err;
var $ = cheerio.load(body);
$('a.title').each(function () {
console.log('%s (%s)', $(this).text(), $(this).attr('href'));
});
next();
});
});