Вы можете сделать это с помощью программирования сокетов, но сложно реализовать те части протокола, которые необходимы для надежного извлечения страницы. Лучше использовать библиотеку, например neon . Это может быть установлено в большинстве дистрибутивов Linux. Под FreeBSD используйте библиотеку fetch.
Для анализа данных, поскольку многие страницы не используют действительный XML, вам необходимо реализовать эвристику, а не настоящий синтаксический анализатор на основе yacc. Вы можете реализовать их с помощью регулярных выражений или машины перехода состояний. Поскольку то, что вы пытаетесь сделать, связано с большим количеством проб и ошибок, вам лучше использовать язык сценариев, например Perl. Из-за высокой задержки в сети вы не увидите никакой разницы в производительности.