webmagic
webmagic copied to clipboard
关于xpath方式抽取元素
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方法。
code4craft/xsoup 也可以改呀。
自己拉个分支,直接用自己分支的release不就好了。