C# 使用AngleSharp解析页面

C# 使用AngleSharp解析页面,c#,.net,anglesharp,C#,.net,Anglesharp,我想用c#和AngleSharp解析网站,用静态页面很容易,但有一个问题,我不能解析只有授权用户才能获得的信息。我应该怎么做才能以编程方式自动调整到网站中并解析所有可用信息?根据使用的授权方案,这可能是非常简单的,也可能是非常困难的/不可能的 让我们先来看看安格夏普可以做什么: 任何类型的请求,包括其操作(在请求时,也在响应之前) 一般cookie管理(当然还有它们的操作) 查询DOM并执行“简单”操作(例如,单击按钮、提交表单) 运行普通JavaScript文件 这里简单的意思是:不需要任

我想用c#和AngleSharp解析网站,用静态页面很容易,但有一个问题,我不能解析只有授权用户才能获得的信息。我应该怎么做才能以编程方式自动调整到网站中并解析所有可用信息?

根据使用的授权方案,这可能是非常简单的,也可能是非常困难的/不可能的

让我们先来看看安格夏普可以做什么:

  • 任何类型的请求,包括其操作(在请求时,也在响应之前)
  • 一般cookie管理(当然还有它们的操作)
  • 查询DOM并执行“简单”操作(例如,单击按钮、提交表单)
  • 运行普通JavaScript文件
这里简单的意思是:不需要任何超出AngleSharp提供的功能的脚本,例如,渲染树信息、高级CSSOM访问等等-或者需要非ES5兼容解析器的脚本(例如,使用ES6或一些特殊的非标准功能)

现在,由于我不知道您遇到的授权方案或确切问题是什么(一些代码/MWE可能会有帮助!),我只想看一个简单的单击示例

var context = BrowsingContext.New(Configuration.Default.WithDefaultLoader().WithCookies());
var loginPage = await context.OpenAsync("http://yourpage.com");
var loginForm = loginPage.QuerySelector<IHtmlFormElement>("form");
var profilePage = await loginForm.SubmitAsync(new { userName = "myUser", password = "password" });
// get something on profilePage
var context=BrowsingContext.New(Configuration.Default.WithDefaultLoader().WithCookies());
var loginPage=await context.OpenAsync(“http://yourpage.com");
var loginForm=loginPage.QuerySelector(“表单”);
var profilePage=wait loginForm.SubmitAsync(新的{userName=“myUser”,password=“password”});
//在第页上找到一些东西
请注意,在本例中,登录表单的表单字段名为
用户名
密码
——它们可能与您的登录页面不同。还要注意,您的页面可能包含多个表单,并且选择器可能比简单的
表单
更复杂


您是否尝试使用
HttpClient
访问网站,添加正确的http头以通过验证,然后才使用angleSharp解析验证成功后返回的页面?