【问题标题】:org.jsoup.select.Selector$SelectorParseException: Could not parse queryorg.jsoup.select.Selector$SelectorParseException:无法解析查询
【发布时间】:2016-01-26 18:09:52
【问题描述】:

我正在使用 Xsoup。

这是代码:

private void updateSeed(Document document) {
 mappingParser
        .setSeed(Xsoup.compile("//div[@class='pgCell'][last()]/a/@href")
        .evaluate(document).get());
} 

当我执行上一个函数时,我得到以下异常:

Exception in thread "main" org.jsoup.select.Selector$SelectorParseException: Could not parse query 'div[@class='pgCell'][last()]': unexpected token at 'last()'
    at us.codecraft.xsoup.xevaluator.XPathParser.byFunction(XPathParser.java:225)
    at us.codecraft.xsoup.xevaluator.XPathParser.consumePredicates(XPathParser.java:202)
    at us.codecraft.xsoup.xevaluator.XPathParser.findElements(XPathParser.java:138)
    at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:51)
    at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:375)
    at us.codecraft.xsoup.xevaluator.XPathParser.combinator(XPathParser.java:85)
    at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:49)
    at us.codecraft.xsoup.xevaluator.XPathParser.parse(XPathParser.java:375)
    at us.codecraft.xsoup.Xsoup.compile(Xsoup.java:27)
    at com.qannoufit.test.CrawlerController.updateSeed(CrawlerController.java:102)
    at com.qannoufit.test.CrawlerController.populateShouldParse(CrawlerController.java:91)
    at com.qannoufit.test.CrawlerController.startCrawling(CrawlerController.java:60)
    at com.qannoufit.test.Main.main(Main.java:12)

【问题讨论】:

  • 似乎您不能使用last(),因为根据xsoup GitHub Readme,xsoup 未在支持的xpath 语法中列出它

标签: java xpath jsoup xsoup


【解决方案1】:

尝试改用 CSS 选择器。最初的 xPath 查询可以翻译如下:

div.pgCell:last-of-type > a

一旦你有了锚点,就得到它的href。

private void updateSeed(Document document) {
  Element anchor = document.select("div.pgCell:last-of-type > a").first();
  if (anchor==null) {
     // Anchor not found, handle error here...
  }

  mappingParser.setSeed(anchor.absUrl("href"));
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多