1

我正在用 C 编写一个程序,它的作用类似于 Linux 系统中的代理服务器:客户端向它请求一个网页,它向远程服务器发送一个 HTTP GET 请求,它得到服务器的响应(网页),即保存在 .html 文件中。

这是我的问题:大多数网站都有一些对图像的引用,所以当我尝试查看创建的 .html 文件代理时,图像不会出现。

我搜索了很多,但一无所获。有没有办法编写一些代码来获取图像?

先感谢您

4

1 回答 1

1

您将不得不编写代码来解析您返回的 HTML 文件并查找图像引用(img 标记),然后向服务器查询这些图像文件。这就是网络浏览器在幕后所做的事情。

您还有一个额外的问题,即 HTML 文件中的图像引用指向原始服务器。我假设由于他们不为您加载返回原始 HTML 的服务器不可用。在这种情况下,在您获得每个图像文件后,您需要在本地文件系统上为其命名,然后更改 HTML 中的引用(以编程方式)以指向新的本地图像名称。

例如:

<img src='http://example.com/image1.png'>

会成为

<img src='localImage1.png'>

如果您正在查询任意网站,那么您还会发现还有各种其他文件需要对 CSS 文件和 JavaScript 文件执行相同操作。一般来说,很难准确地镜像任意网页 - 浏览器有复杂的对象模型来解释网页,因为它们必须处理 CSS 和 Javascript 之类的东西,你可能需要能够“运行”所有动态代码,甚至确定要从服务器下载哪些文件(例如 JavaScript,包括其他 JavaScript 等)。

于 2011-11-28T01:25:04.073 回答