我设法使用C++制作文件下载器(使用winsock)。它下载每个简单的链接,如下所示:www.page.com/image.png什么是页面源的http请求?
我想让它从整个页面下载所有图像,例如4chan线程中的所有图像,但我不知道我应该在http请求中发送什么来获取页面的源代码。我如何请求网页的来源?
我设法使用C++制作文件下载器(使用winsock)。它下载每个简单的链接,如下所示:www.page.com/image.png什么是页面源的http请求?
我想让它从整个页面下载所有图像,例如4chan线程中的所有图像,但我不知道我应该在http请求中发送什么来获取页面的源代码。我如何请求网页的来源?
您不会以您想要的方式发送http
请求中的任何内容。
http
http
请求针对单个文档发送单个请求,并从服务器返回单个文档。
要下载整个页面,您必须解析下载的HTML文档,从HTML源文件中提取所有相关链接,然后针对每个图像,css,js等发出单独的http
请求。主要文件。
这是如何工具像wget's --recursive option下载整个页面。
如果页面位于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结果让所有的<img>
标记,在页面上的各个网址。
网络上的所有内容都是“简单链接”。您正在查看的页面现在?只需将该URL复制并粘贴到您的程序中并下载,即可获得页面的完整源代码。 –
此外,还有很多程序已经完成了您似乎想要的一切,即转到URL,获取页面,递归下载所有图像等。从寻找这样的程序开始,而不是编写自己的程序,特别是因为解析HTML是不容易。 –