webmagic icon indicating copy to clipboard operation
webmagic copied to clipboard

关于xpath方式抽取元素

Open GG22G2 opened this issue 3 years ago • 2 comments

jsoup中有一个selectFirst方法,匹配成功一次就结束了,相比于select要做全文档匹配会好不少。 webmagic项目引用的xsoup中的jsoup版本是1.8.3,这个版本的jsoup还没有selectFirst方法。 我主要看了下xpath方式,最后调用的org.jsoup.select.NodeTraversor#traverse,所以每次都要全文档匹配。

如果不修改xsoup,我能想到的方式是: 直接调用 XPathEvaluator compile = Xsoup.compile("//div"); 通过反射获取compile中的evaluator属性,然后调用

Collector.findFirst(evaluator , page.getHtml().getDocument().root());

所以是否能为webmagic加上selectFirst方法。

GG22G2 avatar Dec 27 '21 12:12 GG22G2

code4craft/xsoup 也可以改呀。

sutra avatar Dec 27 '21 13:12 sutra

自己拉个分支,直接用自己分支的release不就好了。

ruby-ya avatar Jan 01 '22 14:01 ruby-ya