gpt4 book ai didi

java - 使用 WebEngine 的网页内容选择器

转载 作者:行者123 更新时间:2023-12-02 04:00:37 26 4
gpt4 key购买 nike

我想从网站URI加载网页内容并使用选择器获取一些有用的信息。我尝试了JSoup,它允许我 select elements with a CSS Selector 。不幸的是,Jsoup 不能用作浏览器,也不能解析 Javascript 或处理 cookie。这就是为什么我研究使用作为浏览器的 JavaFX WebEngine。但是 WebEngine 类返回 DocumentsJSoup相比,它们的选择器可能性非常有限。唯一的选择器是通过IdTag

是否有一种干净的方法来使用 JavaFX 的 WebEngine 以及更专业的选择器可能性?

或者 Java 中是否有其他浏览器实现允许更专门的选择?实现最好应该是快速的。

目前我能想到的最佳解决方案如下:

  1. 使用JavaFXWebEngine来获取解析Javascript的Document对象。
  2. 使用转换器文档转换为字符串
  3. 将此字符串作为参数传递给 JSoup 对象并使用其 CSS 选择器功能。

最佳答案

Jsoup 确实支持cookie。您只需收集它们并在每个请求中发送它们即可。所以这需要一些工作,但这是可能的。

您的解决方案可以工作,但我怀疑 JavaFX 的 WebEngine 是否是您的最佳选择,除非您的应用程序无论如何都使用 JavaFX 并且您还需要显示 Web 内容。如果您仅需要它来完成您所描述的任务,我肯定会推荐 selenium webdriver为了工作。这样您就可以远程控制真正的浏览器来访问所有内容。可以绑定(bind)到许多标准浏览器,包括 phantomjs 作为 headless Webkit 解决方案以实现最大兼容性,以及 HTMLUnit 用于仅 Java 解决方案。

但是,如果速度非常重要,我会再尝试一下 Jsoup。尝试找到 AJAX 调用 Javascript 触发器并直接获取您需要的东西。这比 selenium 或 WebEngine 快得多。

关于java - 使用 WebEngine 的网页内容选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34962086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com