Извлечение ключевых слов из HTML в C ++ под Linux - PullRequest
1 голос
/ 24 ноября 2011

Я работаю над простым клиент-серверным проектом.Клиент написан на Java, он отправляет ключевые слова на сервер C ++, написанный под Linux, и получает список URL с лучшими рангами (в зависимости от количества вхождений ключевых слов).Работа сервера заключается в том, чтобы просматривать некоторые URL-адреса в поисках ключевых слов и возвращать наиболее подходящие URL-адреса.И теперь проблема в том, что мне нужно анализировать HTML-сайты, чтобы найти вхождения ключевых слов, плюс мне нужно извлечь ссылки с посещенной страницы , чтобы также искать по ним.И мой вопрос: какую библиотеку я могу использовать для этого?Помните, только библиотеки C ++ linux подходят для меня.Было несколько похожих тем, поэтому я попытался просмотреть большинство из них, но некоторые библиотеки разбирают только html-файлы, и я не хочу загружать каждый посещаемый сайт, а разбираю его на лету и просто сохраняю его рейтинг и URL,Некоторые из них выглядят немного сложными для меня - например, сначала парсинг HTML в XML или что-то еще, а затем, наконец, работа с результатами на C ++.Есть ли что-то простое и достаточное, чтобы сделать то, что мне нужно?Любой совет будет оценен.

Ответы [ 3 ]

1 голос
/ 25 ноября 2011

Я не думаю, что регулярные выражения подходят для анализа HTML.Я использую libxml2, и мне это очень нравится - простой в использовании, переносимый и молниеносный.

0 голосов
/ 25 ноября 2011

Вы можете попробовать xerces-c.Это мощная библиотека для разбора XML.Он поддерживает чтение xml на лету, синтаксический анализ dom и sax.

0 голосов
/ 24 ноября 2011

Для получения URL-адресов из Интернета с использованием C / C ++ вы можете использовать библиотеку libcurl .Для парсинга URL-адресов и других не слишком простых вещей с сайта вы можете использовать библиотеку регулярных выражений .

. Отделение тегов HTML от реального содержимого также может быть выполнено без использования библиотеки.

Для более сложных вещей можно использовать Qt, который предлагает классы, такие как QWebPage (который использует WebKit), который позволяет получить доступ к DOM-модели страницы и извлечь отдельные объекты HTML (например, отдельные ячейки таблицы)довольно легко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...