ブログ移転?しました エックスサーバを契約してみたので、 いろいろカスタマイズできそうなWordPressを使って ブログを作ってみました。 https://gametech.vatchlog.com/ 多分こちらでも同じような記事を書いていくと思います。 忍者ブログ

ばちブロ

プログラミングとか徒然を書いていた(過去形)

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【C#.NET】Webからhtmlの内容を取得する


WSCardDBのリストをまとめている時に、ふと思いついたこと。

「ヴァイスシュバルツwikiのhtml情報からカード情報を抜き出してXML化すれば楽なんじゃね!?」

というわけで、URLを指定して、htmlを取得するものを作成してみました。

参考にしたサイトはこちら


             図1:フォームの構成



using System;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace WebHtmlGetterSample
{
public partial class form_Main : Form
{
//WebClient型のインスタンス化
WebClient wc = new WebClient();

public form_Main()
{
InitializeComponent();
}

//取得ボタンを押下時のイベントメソッド
private void btn_decide_Click(object sender, EventArgs e)
{
//例外処理
try
{
//OpenReadメソッドでリソースを取得するためのStreamインスタンスを作成
using (Stream st = wc.OpenRead(tb_html.Text))
{
//StreamReaderクラスのインスタンスを作成(ストリームとエンコーディングを指定)
using (StreamReader sr = new StreamReader(st, Encoding.UTF8))
{
//htmlタグをすべて取得
string html = sr.ReadToEnd();
//rtb_Mainのテキストに代入
rtb_Main.Text = html;
}
}
}
catch(Exception)
{
//URLが正しくないとき
rtb_Main.Text = "URLが正しくない可能性があります。\r\n入力し直してください。";
}
}
}
}



よくわからない?

俺もよくわかってないから大丈夫!!

取りあえず、

WebClientのインスタンスを作成
 ↓
Streamのインスタンス作成
(同時にURLを引数にWebClientのOpenReadメソッドを実行)
 ↓
StreamReaderクラスのインスタンスを作成
(ストリームとエンコーディングを指定)
 ↓
StreamReaderのReadToEndメソッドでhtmlの内容を文字列で取得

の流れかな?

このテンプレさえ覚えておけば取りあえずOKかね。


ちなみに、ヴァイスwikiのあるカードのページのhtmlを抜き取った結果、

7448文字の文字列が取得できました!



ここからカード情報だけを抜き出すのか・・・
先は長そうですね・・・

拍手[0回]

PR