ikarosの作業場

物理シミュレーションを得意とする自称C#エバンジェリスト。「なおこの記事は個人的見解であり、所属する組織の意見とは一切関係がありません」と書かざるを得なくなった悲しみを知れ

Tips:htmlタグを消去する

明日が噂の「Soon die 残酷模試」といわれるテストらしいので今日はある程度軽めに

HttpClientでPOSTリクエストを普通のウェブサイトのURLに送り付けるとそのページのhtmlデータが得られる
というのはC#基礎講座:HttpClient詳説 - ikarosの作業場のお話

さて得られたデータからhtmlタグのみを除去しようというのが今回の目論見であります。

一応windows store版の関数として

HtmlUtilities.ConvertToText("hogehoge");

というのもあるのですがこれは・・・
javascriptやらcssのコードは除去してくれないというちょっと困りものな関数なわけです

というわけでちまちまと正規表現を使って取り除いてあげましょう

response = await client.GetAsync("ほしいURL");
result = await response.Content.ReadAsStringAsync();

//javascript消
Regex js = new Regex(@"<(no)?script.*?script>", RegexOptions.Singleline);
result = js.Replace(result, "");

//css消
Regex css = new Regex(@"<(no)?style.*?style>", RegexOptions.Singleline);
result = css.Replace(result, "");

//htmlタグを消していきます
Regex re = new Regex(@"<.*?>", RegexOptions.Singleline);
result = re.Replace(result, "");

流れとしては最初にjavascriptなりcssのコードを取り除きそこからhtmlタグを消去するという流れ
そうするとあとは生のテキストが出てきますからそれについては煮るなり焼くなり自由にできるわけです

これを応用すればbody部のみのテキストを抽出なんてこともできます。

以上!明日の模試頑張ります

当サイトのソースコード及びその他の情報は個人・商用問わず自由に使っていただいてかかまいませんが、当サイトの情報が元で発生したいかなる結果・不利益については責任を負いかねますのでご了承ください