需要的建议:在C#中解析HTML的最佳方式

时间:2009-05-27 14:35:42

标签: c# html

这是我的问题。哪种方法是从HTML页面中提取某些信息的最佳方式。 我目前做的是以下内容:

  1. 使用WebClient

  2. 下载页面
  3. 使用UTF8Encoding

  4. 将接收的数据转换为字符串
  5. 将字符串转换为XML

  6. 使用.NET Framework中的Xml相关类提取所需数据

  7. 这是我目前以概括的形式做的事情。谁知道另一种方法?什么可以更快或更容易?

    最诚挚的问候, 基里尔

    PS:我听说过一个名为Watin

    的测试框架

    允许你做类似的事情,但没有多研究

4 个答案:

答案 0 :(得分:5)

听起来你已经弄明白了如何获取页面数据(这是最简单的部分)。

对于其他人,我用于此类任务的最佳托管库是HTML Agility Pack。它是开源的,非常成熟,完全用.NET编写。它处理格式错误的HTML,可以通过两种不同的方式完成您的需求:

  • 本机支持对HTML DOM进行XPATH和类似XML的查询。它旨在模仿.NET的XML库,因此您可以使用.NET对XML进行任何操作,您可以使用它来对付HTML。

  • 支持从HTML生成有效的XML,因此您可以使用任何XML工具。

答案 1 :(得分:2)

对于您的解析需求,我建议使用HTML Agility Pack

要实际检索HTML,请使用WebRequest

答案 2 :(得分:0)

除非你正在使用完美形成的XHTML正则表达式将更适合解析html?

Watin允许您通过IE在网页上编写按钮点击,脚本调用等脚本(它可以使用其他浏览器不确定吗?)。我不认为这会实现你想要的。

答案 3 :(得分:0)

通过使用我相信的WebClient.DownloadString方法,可以稍微简化一下。

有关解析的详细信息,请参阅其他答案,因为我还没有尝试过HTML Agility Pack。