Разбор URL-адресов из HTML-страницы - PullRequest
0 голосов
/ 01 марта 2011

У меня есть строка, содержащая HTML-страницу, загруженную через WinHttpReadData.Строка является простой char*.
Я пытался найти способ извлечь только те URL-адреса, которые находятся на этой странице.Для примера представьте, что вы ищете в Google слово WinHTTP, и у вас есть HTML-страница, полная ссылок.Теперь мне нужно проверить каждую ссылку, извлечь ее и сохранить в файл.

Я попытался найти HREF, http:// и другие ключевые слова, а затем попытаться извлечь строку до </a> но на самом деле это не работает.Было бы неплохо также получить описание этого URL (например, <a href="http://someurl.com/somepage.html">some text</a> get some text), но это не так важно, как сам URL.

Хитрость в том, что я не могу использовать стороннююбиблиотеки, так как я не хочу иметь дело с лицензиями и т. п.

Есть идеи, как это сделать?WinHTTP предоставляет способ сделать это?в C ( не C ++)?

Спасибо за помощь

1 Ответ

0 голосов
/ 01 марта 2011

Может быть, вам стоит обратиться к API PCRE C (доступно на сайте PCRE )

Требуемое регулярное выражение будет выглядеть так:

<a.*?href=[""'](?<url>.*?)[""'].*?>(?<name>.*?)</a>

Это также должно сопоставить группу <url> и <name> в структуре группы.

...