基本上我尝试做的就是在网址中输入歌曲和艺术家,然后将我带到歌词的页面,然后我会找到正确的方法得到那些歌词。我是使用Jsoup的新手。到目前为止,我遇到的问题是我无法弄清楚获取歌词的正确方法。我尝试过第一个" div"在" b"之后但它似乎没有按照我的计划方式解决。
public static void search() throws MalformedURLException {
Scanner search = new Scanner(System.in);
String artist;
String song;
artist = search.nextLine();
artist = artist.toLowerCase();
System.out.println("Artist saved");
song = search.nextLine();
song = song.toLowerCase();
System.out.println("Song saved");
artist = artist.replaceAll(" ", "");
System.out.println(artist);
song = song.replaceAll(" ", "");
System.out.println(song);
try {
Document doc;
doc = Jsoup.connect("http://www.azlyrics.com/lyrics/"+artist+"/"+song+".html").get();
System.out.println(doc.title());
for(Element element : doc.select("div")) {
if(element.hasText()) {
System.out.println(element.text());
break;
}
}
} catch (IOException e){
e.printStackTrace();
}
}
答案 0 :(得分:0)
我不知道所有歌曲页面中是否一致,但在您显示的页面中,歌词显示的div元素的第一个属性是margin。如果这是一致的,你可以按照......的顺序尝试一些东西。
Elements eles = doc.select("div[style^=margin]");
System.out.println(eles.html());
或者如果它总是带有歌词的第6个div元素,你可以使用它:
Elements eles = doc.select("div");
if (eles.size() >= 6) {
System.out.println(eles.get(6).html());
}