以编程方式下载“完整”网页?

时间:2012-03-09 16:27:08

标签: c# html

我正在使用C#,我想以编程方式下载一个完整的网页......我的意思不仅仅是页面来源
我希望网页下载与FireFox中的“save page as”相同,但我想以编程方式执行此操作?

1 个答案:

答案 0 :(得分:10)

您需要下载并解析页面以查找所有外部资源,然后依次下载(并可能解析并下载其中的资源)。

为解析HTML,我建议使用HTML Agility Pack。您需要记住要下载的资源(图像,CSS,javascript等)并查询页面。

您需要记住,某些页面会定义base,您需要考虑该页面以及具有相对和绝对链接的页面网址。

您可能还想解析CSS以获取图片引用等内容。

要完成,您需要将所有这些引用更改为指向资源下载位置的本地引用(感谢@Scott M)。