如何刮掉格式错误的HTML

时间:2014-03-23 04:29:11

标签: html screen-scraping

我试图抓一个非常老的页面,看起来它是用FrontPage构建的,甚至只是粘贴在Word文档中。它充满了可以在一个单词的中间自发停止和开始的字体标签,或者在随机不同的树深处自然停止和开始。

我不是在寻找任何可以解析不良XML的工具,我已经在使用Html Agility Pack了。当我说格式错误的HTML时,我的意思是它不是从数据库输出的,没有任何一致的模式,但在屏幕上它看起来很好。

我可以使用哪些技术和工具?

1 个答案:

答案 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();
    });
});