C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: HtmlAgilityPackでのスクレイピング(Form)


(過去ログ 128 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■76031 / inTopicNo.1)  HtmlAgilityPackでのスクレイピング(Form)
  
□投稿者/ にゃむ。 (1回)-(2015/05/25(Mon) 20:29:17)

分類:[C#] 

タイトルの通りです。
Html Agility PackでWebスクレイピングを試みましたが、文字化けしてしまいます。

C#は数年趣味程度で弄ってきましたが、Webスクレイピングに関しては全くの初心者です。
VS2013

----------------------

(Formアプリケーションです。)
botton1とtextBox1を任意の場所に配置しています。

botton1をクリックすると、
http://www.freem.ne.jp/win/category/3
から新作ゲームのタイトル(h4)を取得してTextBox1に出すというものです。

----------------------

private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";

            const string url = "http://www.freem.ne.jp/win/category/3";
            WebClient web = new WebClient();
            string html = web.DownloadString(url);

            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(html);

            HtmlNodeCollection nodes = 
                doc.DocumentNode.SelectNodes(@"//h4");

            foreach (HtmlNode node in nodes)
            {
                
                textBox1.Text += node.InnerText + "\r\n";
                
            }
        }

----------------------

こうするとtextBox1に出てきた文字列は文字化けされてしまいます。

対象ページ内の「ゲームタイトル数」とtextBox内の行数が一緒だったので、取得する対象位置は間違ってないと思います。
ソースには「utf-8」と書いてのですが、utf-8では文字化けしてしまうのでしょうか。

前述しましたが、Webスクレイピングは全くの初心者です。
文字化けしてしまう原因と対処法を教えてください。よろしくお願いします。

(何か不備があれば言ってください。追加します。)

引用返信 編集キー/
■76032 / inTopicNo.2)  Re[1]: HtmlAgilityPackでのスクレイピング(Form)
□投稿者/ わくちゃん (5回)-(2015/05/25(Mon) 22:02:39)
No76031 (にゃむ。 さん) に返信


WebClientのエンコードをUTF-8で指定してください。

const string url = "http://www.freem.ne.jp/win/category/3";
WebClient web = new WebClient();
web.Encoding = System.Text.Encoding.UTF8; // ←この行追加
string html = web.DownloadString(url);
引用返信 編集キー/
■76034 / inTopicNo.3)  Re[2]: HtmlAgilityPackでのスクレイピング(Form)
□投稿者/ にゃむ。 (2回)-(2015/05/25(Mon) 23:24:09)
No76032 (わくちゃん さん) に返信
そう指定すればいいんですね。
ありがとうございましたー。
解決済み
引用返信 編集キー/
■76036 / inTopicNo.4)  Re[3]: HtmlAgilityPackでのスクレイピング(Form)
□投稿者/ ぽぴ王子 (26回)-(2015/05/26(Tue) 09:13:02)
ぽぴ王子 さんの Web サイト
No76034 (にゃむ。 さん) に返信
解決済みなので、見ているかどうかはわかりませんが。

先日、スクレイピングの話題が出た時の投稿です。
http://bbs.wankuma.com/index.cgi?mode=one&namber=75860&type=75859&space=15

こういったことを考えると、freem がスクレイピングを許可しているか、確認を
取ってからでも遅くないような気がします。

私の環境ではちょっとアクセスできないので確認できませんが、もしスクレイピング
禁止と書いていなかったとしても、明示的に禁止していないだけで実際はやって
ほしくない可能性もありますし、逆に問題ないので書いていない可能性もあります。

明示的に書いていない=やっていい
 わけではないと思いますし
技術的に可能=やっていい
 でもない、と思います。

すでに確認を取ったうえでやられているのであれば余計なお世話かもしれませんが
まだであればぜひ管理者の方に確認してみてください。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -