1.はじめに
こんにちは、うらもとです。
WEBサイトのソースコードを取得する必要が発生しました。今回取得するデータはTextBoxやTextAreaやLabel等の値になります。そのためPowerQueryを諦めてC#でWEBサイトのソースコードを取得した時の備忘録です。このソースコードは最低限の処理になりお便利ツール用に作成しましたので、詳細処理の対応はしておりませんのでご理解ください。
2.開発環境
- Windows11
- Visual Studio Code 1.70.2
- .Net Framework 4.8
3.コード
using System.Net.Http; using System.Net.Http.Headers; using System; using System.IO; using System.Net; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; namespace sample1 { class Program { static void Main(string[] args) { //google Uri uri = new Uri("https://www.google.com"); Task<string> task = GetPage(uri); task.Wait(); string result = task.Result; if (result != null) { Console.WriteLine(result); } else { Console.WriteLine("失敗"); Console.WriteLine("=========================="); } } static async Task<string> GetPage(Uri uri) { using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"); client.DefaultRequestHeaders.Add("Accept-Language", "ja-JP"); client.Timeout = TimeSpan.FromSeconds(10.0); try { return await client.GetStringAsync(uri); } catch (Exception e) { Console.WriteLine("=========================="); Console.WriteLine("例外発生", e); Console.WriteLine("=========================="); } return null; } } } }
4.実行結果
- ターミナルから実行します。
コマンド 「dotnet run」を入力し、「enter」ボタンを押下します。
- HTMLソースコードがターミナルに表示されました。
5.最後に
上記コードで、もしShift_jisを認識しないエラーが発生した場合は、.NET Framework プラットフォームでサポートされていないエンコード(Shift_jis)へのアクセスを許可するおまじないを追記してみてください。
※本来は.net Frameworkには影響ないはずですが・・・
.net Framework Core用の「おまじない」になりますが試してみてください。
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
コメント