代码之家  ›  专栏  ›  技术社区  ›  Stephen

jsoup.select不选择css路径,而是由chrome选择

  •  0
  • Stephen  · 技术社区  · 6 年前

    我尝试使用以下CSS路径在www.zoho.com中选择一些段落:

    1. HTML>正文>Div:nth类型(2)>Div:nth类型(3)>节>Div>Div>Div>Div>Div
    2. div.zh-banner-wrap>div.content-wrap.animated:第一个子级

    它在chrome-inspect元素css路径搜索中工作正常

    但是当我在jsoup中尝试这个的时候,它不起作用。

    Java代码:

            Document doc = Jsoup.connect("https://www.zoho.com").get();
    
            Element el = doc.selectFirst("html > body > div:nth-of-type(2) > div:nth-of-type(3) > section > div > div > div > div");
            if(el != null) {
                System.out.println(el.text());
            }
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Luk    6 年前

    我不确定在你的案例中预期的输出是什么。 当我在Chrome控制台中使用您的选择器时

    document.querySelector("html > body > div:nth-of-type(2) > div:nth-of-type(3) > section > div > div > div")
    

    我一无是处。与jsoup中相同。

    这是因为

    document.querySelector("html > body > div:nth-of-type(2)")
    

    <div class=​"ztopstrip-container">​</div>​
    

    如果您的输出不同,请检查是否有通过javascript动态加载的内容。

    比较结果 System.out.println(doc.html()) 使用Web浏览器中的源代码。

        2
  •  -1
  •   user3468921    6 年前

    试试这个:

    Document doc = Jsoup.connect("https://www.zoho.com").get();
    Element el = doc.selectFirst("div:nth-of-type(3) > section > div > div > div > div");
    if(el != null) {
         System.out.println(el.text());
    }
    

    您可以找到更多信息 here