有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java组织。jsoup。选择选择器$SelectorParseException:无法分析查询“”:位于“”的意外标记

我正在建造网络刮板。我试图改进此代码:

for (int i = 1; i < 6; i++) {
            Elements siteElements = document.select("div.grid__col.grid__col--20-80-80.b-products-wrap > ul > li:nth-child(" + i + ")");
            System.out.println(siteElements.select(" > div > div.b-products-list__desc-wrap > div > div.b-products-list__main-content > div.b-products-list__desc-prime > div.b-products-list__manufacturer-holder").select("a").first().text());
            System.out.println(siteElements.select(" > div > div.b-products-list__desc-wrap > div > div.b-products-list__main-content > div.b-products-list__desc-prime > div.b-products-list__title-holder > a").first().text());
            System.out.println(siteElements.select(" div.b-products-list__price-holder > a").first().text());
            System.out.println(siteElements.first().attr("data-ppc-id"));
        }

对于这段代码(不要介意最后一行,我知道它是错误的后即兴)。所以我参与了3sys.out之间共享的部分

 > div > div.b-products-list__desc-wrap > div > div.b-products-list__main-content > 

然后把它放在siteElements变量中(顺便问一下,这个变量的名字好吗?)

for (int i = 1; i < 6; i++) {
        Elements siteElements = document.select("div.grid__col.grid__col--20-80-80.b-products-wrap > ul > li:nth-child(" + i + ") > div > div.b-products-list__desc-wrap > div > div.b-products-list__main-content >");
        System.out.println(siteElements.select(" div.b-products-list__desc-prime > div.b-products-list__manufacturer-holder").select("a").first().text());
        System.out.println(siteElements.select(" div.b-products-list__desc-prime > div.b-products-list__title-holder > a").first().text());
        System.out.println(siteElements.select(" div.b-products-list__price-holder > a").first().text());
        //System.out.println(siteElements.first().attr("data-ppc-id"));
    }

但我得到了一个例外:

Exception in thread "main" org.jsoup.select.Selector$SelectorParseException: Could not parse query '': unexpected token at ''
    at org.jsoup.select.QueryParser.findElements(QueryParser.java:206)
    at org.jsoup.select.QueryParser.parse(QueryParser.java:59)
    at org.jsoup.select.QueryParser.parse(QueryParser.java:42)
    at org.jsoup.select.QueryParser.combinator(QueryParser.java:87)
    at org.jsoup.select.QueryParser.parse(QueryParser.java:67)
    at org.jsoup.select.QueryParser.parse(QueryParser.java:42)
    at org.jsoup.select.Selector.select(Selector.java:91)
    at org.jsoup.nodes.Element.select(Element.java:363)
    at Main.main(Main.java:23)

我做错了什么? 我从中刮取数据的站点:https://merlin.pl/bestseller/?option_80=10349074


共 (1) 个答案

  1. # 1 楼答案

    不能以>结束选择器,因为这需要另一个选择器才有效。只要删除它或者使用> *或者类似的东西,你就不会得到这个异常。也许你需要进一步调整选择器才能得到你想要的元素