我正在取消250部电影的IMDB图表。我想将每个电影名称存储在一个数组中,但我不知道为什么它将所有电影名称放入第一个索引,即Array [0]。 以下是我的代码。
任何人都可以帮助我。我要完成另一个项目,这是需要的主要内容。 如果你能指导我任何网站或教程,我将非常感谢你。
try {
Document doc = Jsoup.connect("http://www.imdb.com/chart/top").userAgent("Mozilla").get();
int counterVariable = 0;
for (Element el : doc.select(".lister-list")) {
mString[counterVariable] = el.select(".titleColumn").text();
totalNumberOfLines++;
counterVariable++;
}
} catch (Exception e) {
System.out.println("Sorry website couldn't be opened");
System.out.println(e);
}
System.out.println(mString[0]);// It's putting all the names into this index
答案 0 :(得分:0)
问题是你只有一个元素匹配选择器.lister-list
,所以迭代它没有多大意义。当你调用el.select(".titleColumn").text();
时,Jsoup连接所有匹配元素的文本。这就是您将所有结果都放在一个元素中的原因。相反,您可以尝试选择所有td
个标记,其中tittleColumn
个属于tr
元素的子级.lister-list
for (Element el : doc.select(".lister-list > tr > td.titleColumn")) {
mString[counterVariable] = el.text();
totalNumberOfLines++;
counterVariable++;
}
有关jsoup css选择器的更多信息,您可以了解here。