【发布时间】:2009-11-18 07:44:38
【问题描述】:
如何使用 C# 修复格式错误的 HTML?一个很好的答案是 HTML Agility Pack 示例!
我正在抓取一个网站(用于合法用途)。该网站的 HTML 还可以,但存在一些烦人的问题。
我可以采用的一种方法是通过正则表达式。我使用 Expression Web 来分析问题以及纠正问题所需的正则表达式。因此,一种方法是使用 RegexBuddy 等工具为这些正则表达式生成 C# 代码。
但是,在 C# 中处理格式错误的 HTML 的推荐工具是 HTML Agility Pack (HAP)。而且,我只分析了几页,怕以后的页面会包含我还没有解决的模式,我讨厌进入“在接下来的几页中查找错误并更正它们”维护商业。因此,如果 HAP 已经有一个可靠的、始终有效的解决方案,那就太好了。问题是,除了在 SO 中提到的一些内容外,除了逐个对象的 API 帮助文件之外,我找不到该工具的任何使用方法文档。
所以 - 在我花费 $ 和学习时间在 RegexBuddy(没有免费评估版)上,或者在 HAP 的 API 文档上大吃一惊之前 - 有没有简单的方法可以做到这一点? HAP 样本会有所帮助... :-)
【问题讨论】:
-
不确定您在这里真正想要做什么。 HtmlAgilityPack 用于从可能不一致的 HTML 中获取一致的对象模型;它并不是真正用于“修复”它。
-
@AakashM:网页显示正确,但兼容性测试失败,即使是 HTML 4.01 过渡等非限制性测试。我想要的是修改 HTML,使其显示相同但符合要求。
-
我有一个问题。如果您使用 Save() 方法保存 HtmlDocument。不会是从错误中修复的 html 吗?我没有尝试过,只是想知道是否会这样做:)
-
@Karim - 感谢您的提示。是的,但在我检查过的特定页面中,我更愿意以不同的方式实施一些更正。
标签: html screen-scraping html-agility-pack malformed