質問

okだこのコード:

public static string ScreenScrape(string url)
    {
        System.Net.WebRequest request = System.Net.WebRequest.Create(url);
        // set properties of the request
        using (System.Net.WebResponse response = request.GetResponse())
        {
            using (System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream()))
            {
                return reader.ReadToEnd();
            }
        }
    }

もっといろいフィルターのテキストをdiv class="コメント"のもの ある別のオプション以外の正規表現を使用して?またはのみ。

感謝

役に立ちましたか?

解決

あなたは HTML敏捷性パックを使用する必要があります。

var doc = new HtmlWeb().Load(url);
var comments = doc.Descendants("div")
                  .Where(div => div.GetAttributeValue("class", "") == "comment");

これは<div class="OtherClass comment">を見つけることができませんことに注意してください。あなたがその探しているなら、あなたはIndexOfを呼び出すことができます。

他のヒント

HtmlAgilityPackはパッケージには、ときに操作するhtmlファイルにしたいのであれば画面を掻きセレンWebDriverとPhantomJSはより良い解決策です。PhantomJSはプロセッサーとチップセッwebブラウザでは早いですね。また、この機能に比べてhtmlジパックです。があり コース この話題です。

あなたはHTMLを解析するために正規表現を使用shoulnd't - 彼らは彼らのためにそれはあまりにも複雑なHTMLとして、ジョブの間違ったツールです
。 あなたは、HTMLパーサを使用する必要があります。
参照してください: C#のHTMLパーサを探してい

コールのあなた最初のポートは、 HTML敏捷性パックにする必要があります。

正規表現は、非.NET言語の入力のこの種を解析するための古典的な方法です。

Additionaly、あなたはXMLの変種(すなわち、XHTML)にこれを正規化することができれば、あなたが必要なノードを照会し、取得するために、XPATHを使用することができます。

何をしたくないことは、あなた自身のパーサーを実装されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top