Существует ли какие-нибудь библиотеки для C++, через которые возможен парсинг веб-страниц и загрузка этой информации в файлы либо в БД?
Если да, то будут ли они быстрее работать обычного file_get_contents в php?
P.S. Библиотека необходима для загрузки большого числа страниц (около 5 млн.) и сохранения информации с них.
Я использую MultiCurl. Запускаю 100 загрузок, через bash запускается 20 копий скрипта (IPC реализовано через очередь в Redis). 18кссылок отрабатывает за 10 минут (около 30 в секунду). Но скрипт не просто качает, он проводит анализ страницы, перекодирует в требуемую кодировку, строит DOM страницы и через XPath вытягивает нужные данные. При этом каждая копия жрет где-то 50МБ. Схема простая и легко масштабируемая горизонтально.
Кстати, нужно понимать/разделять процесс скачки страницы и её парсинг. Первое может легко и непринужденно делать wget.
Сишные либы дадут в принципе один плюс - экономию ОЗУ (т.е. nelis заблуждается). В остальном больше времени уйдет на взаимодействие с сетью и записи данных в базу.
file_get_contents без задания контекстов использовать категорически нельзя. Ибо 1) это блокируемая функция, 2) не содержит таймаутов.