代码之家  ›  专栏  ›  技术社区  ›  David Russel

使用AngleSharp分析页面

  •  0
  • David Russel  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Florian Rappl    6 年前

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

    我们先来看看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
    

    注意,在这个例子中,登录表单的表单字段名是 userName password -它们对于您的登录页可能不同。另外请注意,您的页面可能包含多个表单,并且选择器可能比简单的表单更复杂 form .

    嗯!