当前位置: 首页 > 面试题库 >

是否有类似于Java的lxml或nokogiri的库?

卫博
2023-03-14
问题内容

我想进行一些屏幕抓取,理想情况下使用CSS选择器而不是XPath。是否有类似于Ruby或Python的库?


问题答案:

有十二个用Java编写的屏幕抓取库。仅举几例:

* TagSoup-一种用Java编写的,与SAX兼容的解析器,而不是解析格式正确或有效的XML,而是对HTML进行解析,而这种HTML经常在野外发现:令人讨厌和粗暴,尽管通常情况很短。TagSoup是为需要使用某种合理的应用程序设计来处理这些东西的人们设计的。通过提供SAX接口,它甚至可以将标准XML工具应用于最差的HTML。
* Jericho HTML Parser
-Jericho HTML
Parser是一个简单但功能强大的Java库,允许对HTML文档的各个部分进行分析和操作,包括一些常见的服务器端标签,同时逐字再现任何无法识别或无效的HTML。它还提供了高级HTML表单操作功能。t既不是事件也不是基于树的解析器,而是结合了简单的文本搜索,有效的标签识别和标签位置缓存。首先将整个源文档的文本加载到内存中,然后仅在相关段中搜索每个搜索操作的相关字符。
* HTML Cleaner
-HtmlCleaner对单个元素重新排序,并从脏HTML生成格式正确的XML。它遵循大多数Web浏览器用来创建文档对象模型的相似规则。用户可以提供自定义标签和规则集,以进行标签过滤和平衡。
* NekoHTML
-NekoHTML是一个简单的HTML扫描器和标签平衡器,使应用程序程序员可以解析HTML文档并使用标准XML接口访问信息。解析器可以扫描HTML文件并“修复”人类(和计算机)作者在编写HTML文档时犯的许多常见错误。NekoHTML添加了丢失的父元素;自动关闭带有可选结束标签的元素;并可以处理不匹配的内联元素标签。



还有更多有关Java编写的HTML屏幕抓取工具的信息。但是,正如我在上一个答复中提到的那样,这些是IMO处理任何内容(了解各种废话)的最佳方法。对于您来说,这可能不是问题。

以防万一,也许检查一下线程Nokogiri pure Java
status。



 类似资料:
  • Mac OS X和iOS有一个名为的不错的小类。它是一个单例,可让您存储字符串、数组和原语,并且您始终可以实现一些方法来向其添加自定义对象。当您需要存储快速设置而无需处理文件操作(例如,存储最后选择的字体名称)时,它非常有用。 Java有类似这样简单的东西吗?我希望能够存储用户的最后设置,以便在程序重新加载时重新加载类似的状态,但我不确定在Java中最好的方法是什么。

  • Java有Future或FutureTask,可以在新线程中运行任务。然后,将执行结果返回到原始线程。Swift中是否有任何功能可以实现这一点?

  • 问题内容: C#属性(我的意思是get和set方法)是一个非常有用的功能。Java是否也具有类似于C#属性的内容。我的意思是我们如何在Java中实现类似以下C#代码的内容: 问题答案: 不,Java没有等效性。它只有访问器和更改器方法,以及getter和setter方法的奇特名称。例如:

  • 问题内容: 我想检查一个对象是否是类的实例或的子类。 例如,如果is是类,我想成为并且也要成为。 我希望它也适用于装箱的原始类型。例如,如果是那么应该是。 有这样的事吗?如果没有,如何实现这种方法? 问题答案: Class.isInstance可以满足您的需求。 当然,如果可以使用它,则不应该使用它,但是对于反射场景,它通常派上用场。

  • 问题内容: 在C#中,您可以将一个类标记为,以便只能从同一包中对其进行访问。Java有什么类似的东西吗? 问题答案: 您可以通过从类的声明中省略安全修饰符(公共,私有)来创建程序包专用类。

  • 问题内容: 我被迫将JUnit3用于特定的测试套件。我的理解和服务的功能和,但有一个模拟和对事情应该发生一次测试开始之前,一旦所有的测试运行后? 问题答案: 好的,我应该搜索得更好。 Junit 3中的班级拆解?