備忘録
使用ライブラリ
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;
}
}
↧