Если вы планируете придерживаться C++, вам следует рассмотреть возможность использования библиотеки libcurl вместо того, чтобы использовать протокол HTTP с нуля с помощью сокетов. Для этой библиотеки доступно C++ bindings.
Libcurl является бесплатной и простой в использовании на стороне клиента библиотека передачи URL, поддержки DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS , LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet и TFTP. libcurl поддерживает SSL-сертификаты, HTTP POST, HTTP PUT, FTP Загрузка, загрузка на основе форм HTTP, прокси, куки, пользователь + пароль аутентификация (Basic, Digest, NTLM, Negotiate, Kerberos), файл перевод резюме, http прокси-туннелирование и Больше!
Libcurl очень портативный, он строит и работает одинаково на многочисленных платформах, включая Solaris, NetBSD, FreeBSD, OpenBSD, Дарвин, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOS, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS и многое другое ...
Libcurl бесплатно, поточно-совместимость с IPv6, многофункциональная, хорошо поддерживается , быстро, тщательно документирована и уже используется многими известными крупными и успешными компаниями и многочисленными приложениями.
Вы можете сделать это с C++, конечно, но я хотел бы предложить язык сценариев будет гораздо проще - я C++ кодер, но я бы никогда не использовал его для такого приложения, но я много сделал с помощью Perl. – mathematician1975
Также, если бы вы искали этот сайт, вы бы нашли это, что может помочь http://stackoverflow.com/questions/4278024/a-very-simple-c-web-crawler-spider – mathematician1975
@ mathematician1975: +1 для Perl. И Lua может быть хорошей альтернативой. – Jack