Каков наилучший способ скрининга плохо сформированных страниц XHTML для Java-приложения - PullRequest
4 голосов
/ 03 апреля 2009

Я хочу иметь возможность получать контент с веб-страниц, особенно теги и контент внутри них. Я пробовал XQuery и XPath, но они не работают для искаженного XHTML, а REGEX - это просто боль.

Есть ли лучшее решение? В идеале я хотел бы иметь возможность запрашивать все ссылки и возвращать массив URL-адресов, или запрашивать текст ссылок и возвращать массив строк с текстом ссылок, или запрашивать весь жирный текст и т.д.

Ответы [ 4 ]

4 голосов
/ 03 апреля 2009

Запустите XHTML через что-то вроде JTidy , которое должно вернуть вам действительный XML.

2 голосов
/ 03 апреля 2009

Я использовал http://htmlparser.sourceforge.net/. Он может анализировать плохо сформированный HTML и позволяет легко извлекать данные.

2 голосов
/ 03 апреля 2009

У меня были некоторые проблемы с JTidy в тот день. Я думаю, что это было связано с тегами, которые не были закрыты, что сделало JTidy неудачным. Я не знаю, исправлено ли это сейчас. В итоге я использовал что-то вроде обертки вокруг TagSoup , хотя я не помню точное название проекта. Theres также HTMLCleaner .

2 голосов
/ 03 апреля 2009

Вы можете посмотреть на Watij . Я использовал только его двоюродного брата по имени Руби, Ватира, но с его помощью я смог загрузить веб-страницу и запросить все URL-адреса страницы точно так, как вы описали.

С ним было очень легко работать - он буквально запускает веб-браузер и возвращает вам информацию в приятных формах. Поддержка IE казалась лучшей, но по крайней мере с Watir Firefox также поддерживался.

...