java - org.jsoup.select.Selector$SelectorParseException : Could not parse query

标签 java xpath jsoup xsoup

我正在使用 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)

最佳答案

尝试使用 CSS 选择器。初始 xPath 查询可以翻译如下:

div.pgCell:last-of-type > a

获得 anchor 后,即可获取其 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"));
} 

关于java - org.jsoup.select.Selector$SelectorParseException : Could not parse query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30401656/

相关文章:

javascript - 访问影子根内的元素

ruby - 使用 mechanize 检查名称相似但不同的 div

java - 使用 Jsoup 的网络爬虫(纽约时报)(链接中的链接)

redirect - Jsoup 重定向与浏览器重定向的行为不同

java - 在 Java 中替换字符串忽略大小写

java - Android 应用程序内的 POST 请求返回连接被拒绝,但它可以在浏览器中工作

java - TreeMultiset 是否只保存每个键的重复次数?

java - 除了 XPath 之外,在 selenium webdriver 中定位元素的最佳方法是什么?

java - Java 如何知道在此示例中使用哪个类?

java - 使用 JSoup 将此 url : http://www. aw20.co.uk/images/logo.png 的内容保存到文件中