Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9703

C#でログインが必要なWebサイトにアクセスしてhtmlデータを取得する。

$
0
0
備忘録 使用ライブラリ AngleSharp Cord using AngleSharp.Html.Parser; using System; using System.Collections.Generic; using System.Net.Http; class Program { private static string UserName = "ユーザー名"; private static string Password = "パスワード"; private static string LoginAddress = "ログイン時のURL"; private static HttpClient HostHttpClient = new HttpClient(); static HttpResponseMessage Login() { var LoginHtml = HostHttpClient.GetStringAsync(LoginAddress).Result; var htmlDocument = new HtmlParser().ParseDocument(LoginHtml); var urlElements = htmlDocument.QuerySelectorAll("form input"); var postData = new Dictionary<string, string>(); foreach (var element in urlElements) { var name = element.GetAttribute("name"); var value = element.GetAttribute("value"); if (name == "username") value = UserName; if (name == "password") value = Password; postData.Add(name, value); } var content = new FormUrlEncodedContent(postData); return HostHttpClient.PostAsync(LoginAddress, content).Result; } static void Main(string[] args) { Console.WriteLine(Login().EnsureSuccessStatusCode()); //以降のアクセスはHostHttpClientを使ってする var pageDocument = HostHttpClient.GetStringAsync("リンク").Result; } }

Viewing all articles
Browse latest Browse all 9703

Trending Articles