要在 AngleSharp 中模拟触发表单提交的网站,可以使用以下步骤:
安装 AngleSharp:使用 NuGet 包管理器或命令行安装 AngleSharp。
导入必要的命名空间:在代码文件的开头导入 AngleSharp 的命名空间。
using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Html.Dom;
using AngleSharp.Io;
var config = Configuration.Default.WithDefaultLoader();
var context = BrowsingContext.New(config);
var document = await context.OpenAsync("https://example.com");
var form = (IHtmlFormElement)document.QuerySelector("form");
var input = (IHtmlInputElement)form.QuerySelector("input[name='username']");
input.Value = "your_username";
var password = (IHtmlInputElement)form.QuerySelector("input[name='password']");
password.Value = "your_password";
var submitButton = (IHtmlInputElement)form.QuerySelector("input[type='submit']");
submitButton.Click();
完整示例代码:
using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Html.Dom;
using AngleSharp.Io;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var config = Configuration.Default.WithDefaultLoader();
var context = BrowsingContext.New(config);
var document = await context.OpenAsync("https://example.com");
var form = (IHtmlFormElement)document.QuerySelector("form");
var input = (IHtmlInputElement)form.QuerySelector("input[name='username']");
input.Value = "your_username";
var password = (IHtmlInputElement)form.QuerySelector("input[name='password']");
password.Value = "your_password";
var submitButton = (IHtmlInputElement)form.QuerySelector("input[type='submit']");
submitButton.Click();
// 等待表单提交完成
await Task.Delay(2000);
// 获取提交后的页面内容
var result = await context.OpenAsync(req => req.Content(document.ToHtml()));
Console.WriteLine(result.DocumentElement.OuterHtml);
}
}
这样,你就可以使用 AngleSharp 模拟浏览触发表单提交的网站了。请注意替换示例代码中的网址、用户名和密码为实际的值。