Я пытаюсь очистить действительно старую страницу, которая выглядит так, как будто она была построена с помощью FrontPage или даже просто вставлена из документа Word. Он полон тегов шрифтов, которые могут спонтанно останавливаться и начинаться посредине слова или аналогичных элементов в случайном разном глубине дерева.
Я не ищу никаких инструментов, которые могут анализировать плохой XML, я уже использую Html Agility Pack. Когда я говорю плохо сформированный HTML, я имею в виду, что он не выводился из базы данных, не имеет согласованных шаблонов, но на экране это выглядит отлично.
Какие методы и инструменты я могу использовать?
Я хотел бы использовать Cheerio в Nodejs. Он реплицирует тот же api, что и jQuery, что позволяет легко анализировать плохо отформатированный 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();
});
});