Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Алгоритм парсинга html файла


Автор: andrew_121 6.9.2009, 23:17
Задача: Распарсить html файл, для извлечения ссылок.
Проблема:
Как определить что ссылка полная? К примеру. Нужно найти все ссылки на .rar файлы. Находим текст .rar, итерируемся в обратном направлении для нахождения http://. По идее, так мы получим ссылку. Но в .html файле, может быть несколько упоминаний .rar, и мы найдем(а может и нет) подстроку http:// не являющуюся частью ссылки на это расширение.

Как можно еще решить эту задачу? Может есть какие-то другие способы?

Автор: Anikmar 6.9.2009, 23:41
Нужно будет все-таки анализировать все символы.
Например, если встретились недопустимые символы (тот же знак >) прекращать итерацию.

Либо уже как выделили строку с http по .rar смотреть на ее дропустимость в качестве имени файла (ссылки).

Автор: andrew_121 6.9.2009, 23:45
Anikmar, Да, так я и думал. Просто любопытно было, какие еще есть варианты.

Автор: MAKCim 7.9.2009, 00:58
по-хорошему нужно взять что-то типа libhtml и не париться ;)

Автор: andrew_121 7.9.2009, 01:01
Цитата(MAKCim @  7.9.2009,  00:58 Найти цитируемый пост)
по-хорошему нужно взять что-то типа libhtml и не париться ;) 

Дык... Так это меня и интересовало! Спасибо!

Автор: mrbrooks 7.9.2009, 08:24
andrew_121, можно заюзать еще Xerces-C++. Правда не думаю, что это кошернее варианта MAKCim.

Автор: Cheloveck 7.9.2009, 08:33
а почему бы не регепсы?
Код

(http:)+([:allnum:])*(\.rar)+

как-то так, кажется

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)