Мне удалось сделать загрузчик файлов в C ++ (используя winsock). Он загружает каждую простую ссылку с файлом вроде: www.page.com/image.png
Я хочу, чтобы он загружал все изображения со всей страницы, например все изображения из потока 4chan, но я не знаю, что я должен отправить в запросе http, чтобы получить источник страницы. Как я могу запросить источник веб-страницы?
Вы ничего не отправляете в http
просьба, так, как вы думаете.
http
request отправляет один запрос для одного документа и возвращает один документ с сервера.
Чтобы загрузить всю страницу, вам придется проанализировать загруженный документ HTML, извлечь все относительные ссылки из источника HTML, а затем выпустить отдельный http
запрос для каждого изображения, CSS, JS, и т. д … ссылки из основного документа.
Вот как инструменты, такие как wget — рекурсивная опция скачать целые страницы.
Если страница находится в корне http://www.page.com
сервер, вы бы отправили GET
запрос к www.page.com
сервер просит /
ресурс:
GET / HTTP/1.1
Host: www.page.com
Скажем, страница была на самом деле http://www.page.com/thepage.html
, Вы бы отправили GET
запрос с просьбой /thepage.html
вместо:
GET /thepage.html HTTP/1.1
Host: www.page.com
В любом случае, вам придется проанализировать полученный HTML-код, чтобы получить отдельные URL-адреса всех <img>
теги, которые есть на странице.