Убрать HTML с веб-страницы и вычислить частоту слов? - PullRequest
4 голосов
/ 16 октября 2008

Как в Groovy захватить веб-страницу и удалить теги HTML и т. Д., Оставив только текст документа? Я хотел бы, чтобы результаты были сброшены в коллекцию, чтобы я мог построить счетчик частоты слов.

Наконец, позвольте мне еще раз упомянуть, что я хотел бы сделать это в Groovy.

Ответы [ 3 ]

2 голосов
/ 16 октября 2008

Предполагая, что вы хотите сделать это с Groovy (предположим, основываясь на теге groovy), ваши подходы, скорее всего, будут либо сильно ориентированы на shell-сценарии, либо с использованием библиотек Java. В случае сценариев оболочки я бы согласился с moogs, что использование Lynx или Elinks, вероятно, самый простой способ сделать это. В противном случае посмотрите на HTMLParser и посмотрите Обработка каждого слова в файле (прокрутите вниз, чтобы найти соответствующий фрагмент кода)

Вероятно, вы застряли в поиске библиотек Java для использования с Groovy для анализа HTML, поскольку, похоже, для этого нет библиотек Groovy. Если вы не используете Groovy, пожалуйста, опубликуйте нужный язык, поскольку существует множество HTML-инструментов для текста , в зависимости от того, на каком языке вы работаете.

1 голос
/ 16 октября 2008

Если вам нужна коллекция токенизированных слов из 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
    }
}
0 голосов
/ 16 октября 2008

Вы можете использовать Lynx Web Browser , чтобы выплюнуть текст документа и сохранить его.

Вы хотите сделать это автоматически? Вы хотите отдельное приложение, которое делает это? Или вы хотите помочь кодировать его в своем приложении? На каких платформах (рабочий стол Windows, веб-сервер и т. Д.) Он будет работать?

...