1

在 .net 中,抓取 HTML 网页的最佳方式是什么。

是否有在 .net 框架 2 上运行并将所有 html 放入对象的开源软件。我已经阅读了“HTML Agility Pack”,但还有其他想法吗?

4

2 回答 2

2

我认为 HtmlAgilityPack 是,但你也可以使用

  1. Fizzler:C# 的 css 选择器引擎
  2. SgmlReader : 将 html 转换为有效的 xml
  3. SharpQuery : fizzler 的替代品
于 2012-07-17T11:31:31.497 回答
1

您可以使用 Tidy.net,它是 Tidy 库的 ac# 包装器,可将 HTML 转换为 XHTML,可在此处获取:http: //sourceforge.net/projects/tidynet/,因此您可以获得有效的 XML 并按此方式处理它。

我会这样:

        // don't forget to import TidyNet and System.Xml.Linq

        var t = new Tidy();
        TidyMessageCollection messages = new TidyMessageCollection();
        t.Options.Xhtml = true;

        //extra options if you plan to edit the result by hand
        t.Options.IndentContent = true;
        t.Options.SmartIndent = true;
        t.Options.DropEmptyParas = true;
        t.Options.DropFontTags = true;
        t.Options.BreakBeforeBR = true;




        string sInput = "your html code goes here";
        var bytes = System.Text.Encoding.UTF8.GetBytes(sInput);

        StringBuilder sbOutput = new StringBuilder();

        var msIn = new MemoryStream(bytes);
        var msOut = new MemoryStream();

        t.Parse(msIn, msOut, messages);
        var bytesOut = msOut.ToArray();
        string sOut = System.Text.Encoding.UTF8.GetString(bytesOut);

        XDocument doc = XDocument.Parse(sOut);

        //process XML as you like

否则,HTML 敏捷包是可以的。

于 2012-07-17T13:05:51.947 回答