为什么这个JSoup查询仅在省略<i>标记时才有效?

时间:2015-05-08 12:33:50

标签: java jsoup

我正在尝试使用JSoup解析下面的维基百科页面,并且不知道为什么带有“i”的选择器不返回任何内容:

// this prints nothing:
Document document = Jsoup.connect("http://en.wikipedia.org/wiki/List_of_American_films_of_1989").get();
Elements allFlics = document.select("ul > li > i > a");
Elements allFlics = document.select(selector);
for(int i=0; i < allFlics.size(); i++){
    Element movieLink = allFlics.get(i);
    System.out.println("Got a movie with italics in selector: " + movieLink);
}

// this prints everything:
allFlics = document.select("ul > li > a");
allFlics = document.select(selector);
for(int i=0; i < allFlics.size(); i++){
    Element movieLink = allFlics.get(i);
    System.out.println("Got a movie WITHOUT italics in selector: " + movieLink);
}

<i>从选择器中取出时,它会返回太多。

2 个答案:

答案 0 :(得分:1)

也许你会使用API​​? http://www.mediawiki.org/wiki/API:Main_page

JQuery甚至找不到任何元素ul&gt; li> I&GT;一个

答案 1 :(得分:0)

您可能希望将其用作选择器:"ol > li > i > a"

您可以在浏览器中轻松试用。打开该页面的javascript控制台并输入:$('ol > li > i > a')