我正在尝试通过 C# 和(AngleSharp 或 HTML Agility Pack)从网页获取有关可用时间表的信息。问题是要查看不同日期有哪些可用的时间表,您必须按“div”(上一个,下一个)。所以要有一个月的时间表,我必须一页一页地浏览。我发现的问题是我无法点击 div。与 Chrome 控制台中的 javascript 相比,如果我能做到的话。我已经看到在 IHtmlElement 上使用 DoClick 有类似的响应,但它不起作用,我没有更改页面。浏览器在 Document 中保持相同的 html。
问问题
467 次
1 回答
0
让我们先来看看 AngleSharp 可以做什么:
- 任何类型的请求,包括。他们的操纵(根据要求,但也在响应之前)
- 常规 cookie 管理(当然还有它们的操作)
- 查询 DOM 并执行“简单”操作(例如,单击按钮、提交表单)
- 运行简单的 JavaScript 文件
这里的微不足道的意思是:不需要 AngleSharp 提供的任何功能的脚本,例如渲染树信息、高级 CSSOM 访问,... - 或需要非 ES5 兼容解析器的脚本(例如,使用 ES6 或一些特殊的非-标准能力)。
我在您的问题描述中看到的问题是,为了“单击”页面上的 div,需要运行脚本。这个脚本现在可以属于“琐碎”的类别,但很可能不是。现在您有 2 个选项:
- 试试看,也许它有效/很棒,否则......
- 查看脚本在做什么(显然最终是一些 HTTP 请求......)并做同样的事情
后者当然可以在 C#/AngleSharp 中重新实现。因此,您可以创建一个 HTTP 请求,获取数据,然后直接在该数据集上执行某些操作(它可能是 JSON 并且已经是您想要的......)或者(如果它提供部分 HTML)重新解析它并集成它在真实页面上。
!
于 2018-12-09T17:16:55.987 回答