【发布时间】:2020-11-06 07:24:59
【问题描述】:
我正在尝试编写一个类似于 IMDb 前 250 部电影的“分类器”的代码。所以,我通过 Imdb 的网站做了一些网页抓取。代码的工作方式如下:在第一部分中,我询问用户是否希望显示前 250 个 imdb 的所有时间电影列表(并输入“1”表示“是”),在第二部分中,我正在显示可能的类型电影:“动作、悬疑、惊悚、喜剧等”。 好的,用户可以选择以下选项之一,然后在输出控制台中将显示与相应类型相关的标题电影。 现在,我在代码中做了一个部分,用户可以在其中选择其中一部有趣的电影,并且在他们选择之后会显示一些信息,例如电影的描述。 但是,问题来了:System.out.println(get.list1()) 不起作用,它在控制台输出中没有显示任何内容,Eclipse 只是终止了操作。
这部分代码如下所示:
案例 21:
System.out.println("西方:");
最终文档 document211=Jsoup.connect("https://www.imdb.com/search/title/?genres=western&groups=top_250&sort=user_rating,desc").get();
元素 div211 = document211.select("div.lister-item-content");
for(元素 e : div211.select("h3")) {
String title=e.select("h3.lister-item-header a").text();
list.add(title);
System.out.println(k+" "+title);
k++;
}
for(Element e : div211.select("p")) {
String description=e.select("p.text-muted").text();
System.out.println(description);
list1.add(description);
p++;
}
break;
}
System.out.println("Have u found any interesting title and you want more details about it? (Type '1')");
int option2=input.nextInt();
ok=false;
switch(option2){
case 1:
ok=true;
System.out.println("Introduce the order number of the title: ");
}
Scanner input2=new Scanner(System.in);
int optionMovie=input2.nextInt();
if(ok) {
if(optionMovie>=0 && optionMovie<=list1.size()) {
System.out.println(list1.get(optionMovie));
}
// here the description movie should be shown but nothing shows.
}
}
在控制台中的输出是这样的: 0 Cel bun, cel r?u, cel urât 1 西部往事 2 姜戈德兹兰蒂特 3 Pentru Cativa Dolari in Plus 4 杀戮者 5 Comoara din Sierra Madre 6 Goana dupa Aur
询问您是否需要有关标题的更多详细信息,您输入“1”表示“是”,然后输入相应的标题编号(在本例中为 0-6),然后我想显示相应标题的相应描述。但是 list1.get(optionMovie);在控制台中不起作用,并且创建了 ArrayList。 希望你明白我的问题! 希望有一些解决方案来解决这个问题。
【问题讨论】:
-
请修复您问题中的代码并删除您将图像作为评论发布的答案。
标签: java eclipse web-scraping arraylist