1

.net で HTML Web ページをスクレイピングする最良の方法は何ですか。

.net フレームワーク 2 で実行され、すべての html をオブジェクトに入れるオープン ソースはありますか。「HTML Agility Pack」について読みましたが、他に何か考えはありますか?

4

2 に答える 2

2

HtmlAgilityPackはそうだと思いますが、使用することもできます

  1. Fizzler:C#用のcssセレクターエンジン
  2. SgmlReader:htmlを有効なxmlに変換します
  3. SharpQuery:フィズラーの代替
于 2012-07-17T11:31:31.497 に答える
1

Tidy Library の ac# ラッパーである Tidy.net を使用して、HTML をhttp://sourceforge.net/projects/tidynet/で入手できる XHTML に変換すると、有効な 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 Agility パックで問題ありません。

于 2012-07-17T13:05:51.947 に答える