【问题标题】:downloading a "COMPLETE" webpage programmatically? [closed]以编程方式下载“完整”网页? [关闭]
【发布时间】:2012-03-09 16:27:07
【问题描述】:

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

【问题讨论】:

  • 请注意,这仅适用于静态页面或没有动态内容的页面。

标签: c# html


【解决方案1】:

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

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

您需要记住,有些页面会定义 base,您需要考虑到这一点以及带有相对和绝对链接的页面 URL。

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

最后,您需要将所有这些引用更改为指向资源已下载到的本地引用(感谢@Scott M)。

【讨论】:

  • 我应该自己做还是有图书馆可以做?
  • 另外,您需要更改 HTML 中的引用以指向文件夹中的关联资源。
  • @ahmadhori - 我不知道有一个图书馆可以为你做这一切。快乐的黑客攻击!
  • 补充一点,对于那些不习惯 XPath 的人来说,CsQuery 是 HtmlAgilityPack 的一个很好的替代品——它使用 CSS3 选择器。不再受支持,但它的最新版本已经足够了。
猜你喜欢
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
相关资源
最近更新 更多