【发布时间】:2012-03-09 16:27:07
【问题描述】:
我正在使用 C#,我想以编程方式下载完整的网页......我的意思不仅仅是页面源
我希望下载的网页与 FireFox 中的“页面另存为”相同,但我想以编程方式执行此操作?
【问题讨论】:
-
请注意,这仅适用于静态页面或没有动态内容的页面。
我正在使用 C#,我想以编程方式下载完整的网页......我的意思不仅仅是页面源
我希望下载的网页与 FireFox 中的“页面另存为”相同,但我想以编程方式执行此操作?
【问题讨论】:
您需要下载并解析页面以找出所有外部资源,然后依次下载每个(并可能解析并下载其中的资源)。
为了解析 HTML,我建议使用HTML Agility Pack。您需要记住要下载的资源(图像、css、javascript 等)并在页面上查询这些资源。
您需要记住,有些页面会定义 base,您需要考虑到这一点以及带有相对和绝对链接的页面 URL。
您可能还想解析 CSS 以获取图像引用等内容。
最后,您需要将所有这些引用更改为指向资源已下载到的本地引用(感谢@Scott M)。
【讨论】: