我想使用带有AngleSharp的c#来解析网站,使用静态页面很容易,但是有一个问题,我无法解析仅供授权用户使用的信息。我该怎么办才能以编程方式自动编入网站并解析所有可用的信息?
答案 0 :(得分:0)
根据使用的授权方案,这可能是非常简单的,也可能是非常困难的/不可能的。
因此,我们首先访问AngleSharp可以完成的工作:
这里的意思很简单:不需要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
更复杂。
HTH!