C#で使用されるデータ収集のいくつかの方法

過去2日間でデータ収集を行うので、データ収集のいくつかの方法をコンパイルするために使用することができます。データは、私は比較的単純集めているので、これは使用するフレームワークが存在しません。2つのフレームワークHtmlAgilityPackとJumonyのより有名な、関心を研究することができます。もちろん、機関車取得ツールも非常に便利ですが、支払うことに。ここでは、コードを仕上げています。

 

   ///  <要約> 
    /// Htmlの定期的なプロセスヘルパー
     ///  </要約> 
    パブリック クラスHtmlRegex 
    { 
        ///  <要約> 
        /// すべてのタグに一致するHTML形式
         ///  </要約> 
        constの 文字列 HTMLALLTAG = @ " <[^>] +> | </ [^>] +> " ; 

        ///  <要約> 
        /// すべてのHTMLタグを削除
         ///  </要約> 
        ///  <PARAM NAME = "コンテンツ"> 元のHTMLコード</ param>の
        ///  <戻り値> </戻ります>
        パブリック 静的 文字列 RemoveAllHtml(内容)
        {
            戻り Regex.Replace(コンテンツ、HTMLALLTAGを、"" ); 
        } 

        ///  <まとめ> 
        /// 一致によって指定された正規取得するコンテンツ
         ///  </要約> 
        ///  <PARAM NAME = "regStr"> レギュラー< / param>の
        ///  <PARAM NAME = "コンテンツ"> 元のHTMLコード</ param>の
        ///  <PARAM NAME = "hashtml"> HTMLタグが含まれています。</ param>の
        ///  <> </戻り値を返します> 
        公共の 静的な 文字列 GetStrByRegex(文字 regStr、文字列の内容、ブール hashtml = 
        {
            ストリング結果= 文字列.Empty; 
            正規表現REG = 新しい新しい正規表現(regStr); 
            マッチMTH = reg.Match(コンテンツ); 

            IF (mth.Success)
            { 
                結果 = mth.Value;
                 IF!結果= HtmlRegex.RemoveAllHtml((hashtml)結果); // HTMLタグ除去

            } 
            戻り結果を; 
        } 

        ///  <要約> 
        ///は、HTMLコード指定された場所を取得
         ///  </要約> 
        ///  <PARAM NAME = "開始"> 始まる文字列</ param>の
        ///  <PARAM NAME = "終了"> 文字列の末尾</ param>の
        ///  <PARAM NAME = "コンテンツ"> 元のHTMLコード</ param>の
        ///  <PARAM NAME = "hasHtml"> HTMLが含まれていますタグ</ param>の
        ///  </戻り値> <返し> 
        公共の 静的な 文字列(GetStrByRegex スタート、文字列の終わり、文字列の内容、BOOL = hasHtmlをtrueに
        { 
            文字列の結果= 文字列.Empty;
             文字列 regStr = @ " (IS? )("+ +スタート)。*?("エンド+ + " " ; 
            正規表現REG = 新しい新しい正規表現(regStr); 
            マッチMTH = reg.Match(コンテンツ);
             IF (mth.Success)
            { 
                結果 = mth.Value;
                 IF(hasHtml)HtmlRegex.RemoveAllHtml結果=(!結果); // HTMLタグを取り除く
            }
             戻りの検索結果を; 
        } 

        ///  <要約> 
        ///は、文字列マッチングのリストを取得
         ///  </要約> 
        ///  <PARAM NAME = "regStr"> 定期的に</ PARAM> 
        ///  <PARAM NAME = "コンテンツ"> 原HTML代码</ PARAM> 
        ///  <戻る> </戻り> 
        パブリック 静的リスト< ストリング > GetStrListByRegex(ストリング regStr、文字列コンテンツ)
        { 
            リスト < ストリング > strList = NULL ; 
            MatchCollection MC = nullを試す
            { 
                正規表現REG = 新しい正規表現(regStr)。
                MC = reg.Matches(コンテンツ)。
                もし(mc.Count> 0 
                { 
                    strList = 新しいリスト< ストリング > ();
                    以下のためにint型私= 0 ; iがmc.Countを<; Iは++ 
                    { 
                        strList.Add([I] .ValueのMC)。
                    } 
                } 
            } 
            キャッチ
            { 
                strList = NULL ; 
            } 
            戻りstrList。
        } 

        ///  <要約> 
        ///一致する文字列のリストを取得
         ///  </要約> 
        ///  <PARAM NAME = "スタート"> 文字列を開始</ param>の
        ///  <PARAM NAME = "終了"> 文字列の末尾</ param>の
        ///  <PARAM NAME = "コンテンツ"> 元のHTMLコード</ param>の
        ///  <戻り値> </戻り値> 
        パブリック 静的リスト< 文字列 > GetStrListByRegex(文字列スタート、文字列の終了、文字列の内容)
        { 
            リスト < 文字列 > = strlist ヌル
            MatchCollection MC = nullを文字列 regStr = @ " (ある?)(" + +スタート" )*。?(" +エンド+ " " ;
            試す
            { 
                正規表現REG = 新しい正規表現(regStr)。
                MC = reg.Matches(コンテンツ)。
                もし(mc.Count> 0 
                { 
                    strList = 新しいリスト< ストリング > ();
                    以下のためのint型 I = 0; 私はmc.Countを<; I ++ 
                    { 
                        strList.Add(MC [i]の.Valueの)。
                    } 
                } 
            } 
            キャッチ
            { 
                strList = NULL ; 
            } 
            戻りstrList。
        } 

    }

 

おすすめ

転載: www.cnblogs.com/similar/p/8350870.html