C#でwebスクレイピング
C#の勉強がてらwebスクレイピングでもやってみようと思い、ちょっとやってみたので保存用に書き留めておきます。
C#でのWebスクレイピングは.NETのフレームワーク郡でもできるみたいだが、「AngleSharp」というのを使えば、もっと短いコードでwebスクレイピングができるらしく試してみた
<実行環境>
・VisualStudioCommunity2019
・.Netframework4.7.1
AngleSharpのインストール
AngleSharpでいざWebスクレイピング
とりあえず自分のサイトのスクレイピング。ヤフーファイナンスとかでもいいかなと思ったけど、あそこはスクレイピングにはうるさいので、とりあえず自分のサイトにしてみた
# ライブラリの呼び出し
using System;
using System.Linq;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Net;
using System.Text.RegularExpressions;
using AngleSharp;
# 名前空間の定義
namespace Sample
{
# クラスの定義
public class Program
{
static void Main(string[] args)
{
// スクレイピング先のURLの定義
var htmlUrl = $"https://tkstock.site/2019/10/17/anglesharp-cs-scraping/";
// Sectorの定義
var querySelector = $"#post-3909 > article > header > h1";
// HTMLドキュメントの取得
var document = BrowsingContext.New(Configuration.Default.WithDefaultLoader()).OpenAsync(htmlUrl).Result;
// クエリセレクタでデータの取得
var element = document.QuerySelector(querySelector);
// デバック画面で確認
Console.WriteLine($"blogtitle is {element.InnerHtml}");
}
}
}
最後のSystem.Console.WriteLine();はPythonのprint、javascriptのconsole.log,Cのprintfみたいなデバック関数。これを入れることでデバック(なし)実行したときにコンソール画面にスクレイピングした結果が表示される。
やってみた感じPythonのrequestsとBeautifulSoupでのスクレイピングに近くモダンといえばモダンだなという感じ。
参考:https://emergingtechnology.azurewebsites.net/2018/05/30/scraping/
関連記事:PythonでのWebスクレイピングには「requests」がめっちゃ便利という話
関連記事:【Python】「Beautiful Soup」でスクレイピングしたhtmlデータを解析する
関連記事:【Python】スクレイピングした価格データをデータベース(DB)に保存する


コメント