Убрать HTML с веб-страницы и вычислить частоту слов?
В Groovy, как захватить веб-страницу и удалить теги HTML и т. Д., Оставив только текст документа? Я хотел бы, чтобы результаты были сброшены в коллекцию, чтобы я мог построить счетчик частоты слов.
Наконец, позвольте мне еще раз упомянуть, что я хотел бы сделать это в Groovy.
3 ответа
Предполагая, что вы хотите сделать это с помощью Groovy (предположим, основываясь на теге groovy), ваши подходы, скорее всего, будут либо сильно ориентированы на shell-сценарии, либо с использованием библиотек Java. В случае сценариев оболочки я бы согласился с moogs, что использование Lynx или Elinks, вероятно, самый простой способ сделать это. В противном случае взгляните на HTMLParser и посмотрите Обработка каждого слова в файле (прокрутите вниз, чтобы найти соответствующий фрагмент кода)
Вы, вероятно, застряли в поиске библиотек Java для использования с Groovy для разбора HTML, поскольку, похоже, для этого нет библиотек Groovy. Если вы не используете Groovy, то, пожалуйста, опубликуйте нужный язык, поскольку существует множество инструментов HTML для текста, в зависимости от того, на каком языке вы работаете.
Если вам нужна коллекция токенизированных слов из HTML, то не можете ли вы просто проанализировать ее как XML (должен быть действительный XML) и захватить весь текст между тегами? Как насчет чего-то вроде этого:
def records = new XmlSlurper().parseText(YOURHTMLSTRING)
def allNodes = records.depthFirst().collect{ it }
def list = []
allNodes.each {
it.text().tokenize().each {
list << it
}
}
Вы можете использовать Lynx Web Browser, чтобы выплевывать текст документа и сохранять его.
Вы хотите сделать это автоматически? Вы хотите отдельное приложение, которое делает это? Или вы хотите помочь кодировать его в своем приложении? На каких платформах (рабочий стол Windows, веб-сервер и т. Д.) Он будет работать?