我无法使用 jSoup 访问此页面上的 javascript 可扩展菜单。我如何使用 Phantom.js 或 HTML 单位使其工作?

I can't access the javascript expandable menu at this page with jSoup. How can i make it work using Phantom.js or HTML Unit?

我在解析 this 页面时遇到问题。价格、航空公司、出发时间等我都搞定了

但是我想要的是航班号。它是隐藏的,您需要在航班中单击,然后菜单会展开以显示它。

这是 jsoup 必须停止的地方。如果您在任何地方单击 "view source",它将不会显示,例如“6186”航班。如果您展开菜单并右键单击那里,它将为您返回航班。

我搜索的具体信息是这样的:

所以,我注意到我需要使用无头浏览器之类的东西来访问所有内容。但是当试图理解 phantom.js 或 htmlunit 时,我在开始时遇到了很大的问题。我无法表达我需要什么,而且我对无头浏览器的功能感到恼火。关于如何将其转换为可解析 HTML 的示例代码会非常好。

有没有人有解析这些元素的经验?非常感谢您。

此致!

更新以回答 jPO 评论。其他帮助仍然非常受欢迎——这是我在检查事件时看到的:

更新 2:关于如何执行此操作的任何想法?也许是无头浏览器?

所以请看这段代码作为答案。

$.ajax({
  url:"http://www.kayak.de/s/run/inlineDetails/flight",
  type:"post",
  dataType:"json",
  data:{
    localidx:104,
    resultid:"ea63237698f20885f47a9b3827f9953b",
    searchid:"kUECCUIWzU"
  }
});

您可以看到有服务器正在等待您的请求。试图理解发送到服务器的参数给了我几个选择,我将坚持这些。 localidx是按钮Details anzeigen中写的id resultid 也写在那个按钮里面 searchid 写在 iframe 中,id master-1 在 name tag

我希望你是正则表达式的朋友,因为那是你必须面对的:/

祝你好运!希望我有所帮助!