开发者社区> 问答> 正文

webMagic不支持Xpath中的contains?报错

@黄亿华 你好,想跟你请教个问题:我在运行你demo中的HuxiuProcessor类中对xpath修改为://div[@class='article-wrap']/h1[contains(text(),'马云')]后报错如下:

[16/04/27 18:13:31] [ERROR] process request Request{url='http://www.huxiu.com/', method='null', extras={statusCode=200}, priority=0} error
java.lang.NullPointerException
    at us.codecraft.xsoup.xevaluator.CombiningEvaluator$And.matches(CombiningEvaluator.java:53)
    at us.codecraft.xsoup.xevaluator.CombiningEvaluator$And.matches(CombiningEvaluator.java:53)
    at org.jsoup.select.Collector$Accumulator.head(Collector.java:42)
    at org.jsoup.select.NodeTraversor.traverse(NodeTraversor.java:31)
    at org.jsoup.select.Collector.collect(Collector.java:24)
    at us.codecraft.xsoup.xevaluator.DefaultXPathEvaluator.evaluate(DefaultXPathEvaluator.java:29)
    at us.codecraft.webmagic.selector.XpathSelector.selectElements(XpathSelector.java:45)
    at us.codecraft.webmagic.selector.HtmlNode.selectElements(HtmlNode.java:71)
    at us.codecraft.webmagic.selector.HtmlNode.xpath(HtmlNode.java:43)
    at cn.bh.webMagic.bh_crawler.pageProcessor.HuxiuProcessor.process(HuxiuProcessor.java:19)
    at us.codecraft.webmagic.Spider.processRequest(Spider.java:421)
    at us.codecraft.webmagic.Spider$1.run(Spider.java:322)
    at us.codecraft.webmagic.thread.CountableThreadPool$1.run(CountableThreadPool.java:74)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

是不是因为不支持contains呀,如果要支持该如何改代码。

展开
收起
爱吃鱼的程序员 2020-06-09 15:28:02 987 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    自己找到了解决办法,page.getHtml().xpath("//div[@class='article-wrap']/h1/text()").regex(".马云.").toString()。条条大路通罗马。<imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/82.gif"alt="">

    同问,好似确实是这样,不过只有text()的时候这样

    2020-06-09 15:31:10
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
编程语言如何演化—— 以 JS 的 private 为例 立即下载
编程语言如何演化-以JS的private为例 立即下载
原生SQLonHadoop引擎-Apache HAWQ2.X 立即下载