3

重複の可能性:
Web ページの解析

C# で Web ページのコンテンツを解析しようとしています。これは私が使用するコードです:

WebRequest request = WebRequest.Create("URL");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
    html = sr.ReadToEnd();
}

しかし、問題は、html に含まれるすべてのデータを取得することです。

有用なデータを「きれいな」方法で取得する方法について何か提案はありますか、それとも独自のパーサーを構築する必要がありますか? 例: タイトルとそれに関連するテキストを含む投稿 (ブログのような形式)。

4

3 に答える 3

5

実際に Web ページからブログ投稿を解析しようとしている場合は、そのようにしないでください。HTML Agility Pack を使用することさえ考えないでください。

代わりに、.Net フレームワーク (v3.5 以降) に既に組み込まれているSyndicationFeedおよび関連クラスを使用する必要があります。これらは、RSS フィードの消費とリッピングに合わせて作られています。

于 2013-01-16T12:29:36.827 に答える
4

HtmlAgilityPackを使用するだけです。それはとても強力です!

インターネットsucには、 http: //runtingsproper.blogspot.fr/2009/09/htmlagilitypack-article-series.htmlとして多くのチュートリアルがあります。

于 2013-01-16T12:21:06.480 に答える
1

を使用しRegexます。2つのタグ間でデータを解析するには(これはあなたがやりたいと思います)、たとえば次のようにすることができます。

string match = Regex.Match(data, string.Format("<a>(?<inbetween>.+?)</a>")).Groups["inbetween"].Value;

を使用するRegexと、敏捷性パックとは異なり、ポータブルなスタンドアロンアプリケーションに最適な外部依存関係は必要ありません。

于 2013-01-16T12:22:54.670 に答える