2016-07-05 115 views
-1

我设法使用C++制作文件下载器(使用winsock)。它下载每个简单的链接,如下所示:www.page.com/image.png什么是页面源的http请求?

我想让它从整个页面下载所有图像,例如4chan线程中的所有图像,但我不知道我应该在http请求中发送什么来获取页面的源代码。我如何请求网页的来源?

+1

网络上的所有内容都是“简单链接”。您正在查看的页面现在?只需将该URL复制并粘贴到您的程序中并下载,即可获得页面的完整源代码。 –

+2

此外,还有很多程序已经完成了您似乎想要的一切,即转到URL,获取页面,递归下载所有图像等。从寻找这样的程序开始,而不是编写自己的程序,特别是因为解析HTML是不容易。 –

回答

1

您不会以您想要的方式发送http请求中的任何内容。

httphttp请求针对单个文档发送单个请求,并从服务器返回单个文档。

要下载整个页面,您必须解析下载的HTML文档,从HTML源文件中提取所有相关链接,然后针对每个图像,css,js等发出单独的http请求。主要文件。

这是如何工具像wget's --recursive option下载整个页面。

0

如果页面位于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>标记,在页面上的各个网址。