使用AngleSharp解析页面

时间:2018-06-04 13:22:17

标签: c# .net anglesharp

我想使用带有AngleSharp的c#来解析网站,使用静态页面很容易,但是有一个问题,我无法解析仅供授权用户使用的信息。我该怎么办才能以编程方式自动编入网站并解析所有可用的信息?

1 个答案:

答案 0 :(得分:0)

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

因此,我们首先访问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

请注意,在此示例中,登录表单的表单字段名称为userNamepassword-对于您的登录页面,它们可能有所不同。还要注意,您的页面可能包含多种形式,并且选择器可能比简单的form更复杂。

HTH!