没有UI界面的AngleSharp点击



我正在尝试通过C#和(AngleSharp或HTML Agility Pack(从网页中获取有关可用时间表的信息。问题是,要查看不同日期有哪些时间表可用,您必须按"div"(上一个,下一个(。因此,要有一个月的时间表,我必须逐页浏览和分页。我发现的问题是我无法单击div。与Chrome控制台中的javascript相反,如果我能做到的话。我已经看到在IHtmlElement上使用DoClick也有类似的响应,但它不起作用,我不更改页面。浏览器在文档中不断维护相同的 html。

让我们首先访问一下AngleSharp可以做什么:

任何类型的请求,
  • 包括其操纵(根据请求,但也在响应之前(
  • 一般 cookie 管理(当然还有它们的操纵(
  • 查询 DOM 并执行"简单"操作(例如,单击按钮、提交表单(
  • 运行琐碎的 JavaScript 文件

这里的琐碎意味着:不需要AngleSharp提供的任何功能的脚本,例如,渲染树信息,高级CSSOM访问,...-或需要不符合ES5标准的解析器的脚本(例如,使用ES6或一些特殊的非标准功能(。

我在您的问题描述中看到的问题是,为了"单击"页面上的div,需要运行脚本。此脚本现在可以属于"琐碎"类别,但是,很可能不是。现在您有 2 个选项:

  • 尝试一下,也许它有效/很棒,否则...
  • 看看脚本在做什么(显然最终会有一些HTTP请求......(并做同样的事情

后者当然可以在C#/AngleSharp中重新实现。因此,您可以创建一个HTTP请求,获取数据,然后直接对该数据集执行某些操作(它可能是JSON,并且已经是您想要的......(或者(如果它提供部分HTML(重新解析它并将其集成到真实页面上。

哼!

最新更新