gpt4 book ai didi

ruby - clojure 中的屏幕抓取

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:50 25 4
gpt4 key购买 nike

我用谷歌搜索,但找不到满意的答案。 This所以问题是相关的,但有点老,而且与我正在寻找的完全相反:一种使用 XPath 而不是 CSS 选择器进行屏幕抓取的方法。

我已经将 enlive 用于一些基本的屏幕抓取,但有时需要 XPath 选择器的强大功能。所以这里是:

对于 clojure (java),是否有任何等效于 Nokogiri 或 lxml 的东西? “纯 Java Nokogiri”的状态如何?有什么方法可以使用 clojure 中的库吗?比 this hack 更好的选择?

最佳答案

这里有几种可能性。

其中一些需要半良好格式的 XML 才能工作。如果你没有,我会配对 clj-tagsouphiccup生成 XML(用 clj-tag-soup 解析,它生成一个打嗝并写成 XML 的表单)并使用它。

首先,只需使用 native JDK 功能。假设文档格式足够好,请尝试使用 clj-xpath它提供了一个围绕 native JDK 解析的包装器。

如果这还不够,请考虑采用更基于 Clojure 数据结构的路线。更简单的路径可以只使用 TagSoup 的输出以及映射、过滤器和 nths 的组合。

如果您需要更高级的东西,请考虑使用 zipper 来围绕数据提供结构,使其更易于操作。使用 clojure.xml/parseclojure.zip/xml-zip 生成 zipper ,然后从那里开始。可以在 http://techbehindtech.com/2010/06/25/parsing-xml-in-clojure/ 找到一个例子。 .

使用原生结构是我处理任何复杂问题的首选途径,因为您可以发挥语言的全部力量。

如果您提供了为什么需要 XPath 的示例,我可以提供一些示例代码。

关于ruby - clojure 中的屏幕抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693615/

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