質問
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を使用することができます。
何をしたくないことは、あなた自身のパーサーを実装されます。
所属していません StackOverflow