【问题标题】:What is the <cbn-root> html element? And how to parser it by Java?什么是 <cbn-root> html 元素?以及如何用Java解析它?
【发布时间】:2020-11-29 02:46:21
【问题描述】:

我正在尝试编写一个 Java 程序来监控该网站上是否有可用的预留位置:https://www.drpciv.ro/drpciv-booking/formular/23/exchangingForeignDriverLicence

但是当我使用 Chrome 或 Edge 查看页面源时,正文部分仅显示 &lt;cbn-root&gt;&lt;/cbn-root&gt;。但是使用 Chrome 的 Inspect 功能,我可以看到完整的正文。当我尝试使用 HtmlUnit 获取 Java 中的网页内容时,它只得到&lt;cbn-root&gt;&lt;/cbn-root&gt;,也没有真正的内容。

尝试谷歌&lt;cbn-root&gt;,但没有看到任何有用的信息。 想知道元素是什么以及在这种情况下如何读取 Java 中的真实内容。

谢谢

【问题讨论】:

    标签: java html htmlunit


    【解决方案1】:

    至少在即将发布的 2.43.0 版本中,该标签会被替换。

    public static void main(String[] args) throws IOException {
        String url = "https://www.drpciv.ro/drpciv-booking/formular/23/exchangingForeignDriverLicence";
    
        try (final WebClient webClient = new WebClient(BrowserVersion.FIREFOX)) {
            webClient.getOptions().setThrowExceptionOnScriptError(false);
    
            HtmlPage page = webClient.getPage(url);
            System.out.println(" ---- ");
            webClient.waitForBackgroundJavaScript(10_000);
    
            System.out.println(" ---- ");
            System.out.println(page.asXml());
        }
    }
    

    【讨论】:

    • 运行时,您会在日志中看到堆栈溢出,请使用最新的 SNAPSHOT build 2.44.0-SNAPSHOT 来修复此问题。
    【解决方案2】:

    试试Beautiful Soup Can't Find Tags 它解释了后端 JS 是异步加载的,并且您的 GET 请求无法准确地获取标签。在此处阅读更多内容。

    【讨论】:

      猜你喜欢
      • 2015-09-05
      • 1970-01-01
      • 2020-12-04
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      相关资源
      最近更新 更多