我遇到了JSoup的问题。 我想做一个小项目,我从无线电网页读出数据。我想阅读当前的播放歌曲和艺术家名称。 (页面是:http://www.radiopilatus.ch/)现在它或多或少有效。我唯一的问题是,有时当歌曲发生变化时,我总是不会得到新的数据。有没有办法告诉Jsoup重新加载页面或其他东西以便获得新数据?
我的代码:
private void getData(){
try{
Document doc = Jsoup.connect("https://www.radiopilatus.ch/").get();
//Artist
Elements ereignisse = doc.select("#content > div:nth-child(2) > div > div.tile.livecenter > div > div.last-played > div > div.col-sm-8.title > span.artist");
for(Element e : ereignisse){
currSongArtist = e.text();
}
//Titel
ereignisse = doc.select("#content > div:nth-child(2) > div > div.tile.livecenter > div > div.last-played > div > div.col-sm-8.title > span.song");
for(Element e : ereignisse){
currSongTitle = e.text();
}
doc = null;
}catch(IOException e){
e.printStackTrace();
}
}
答案 0 :(得分:0)
我重新编写了这个东西并使用JSON-Simple来解析JSON文件而不是HTML文件。
我的更新代码:
private void getData() {
try {
String url = "http://player.radiopilatus.ch/data/generated_content/pilatus/production/playlist/playlist_radiopilatus.json";
String jsonURL = IOUtils.toString(new URL(url));
//FileReader reader = new FileReader(jsonURL);
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject)jsonParser.parse(jsonURL);
JSONArray playing = (JSONArray)jsonObject.get("live");
Iterator i = playing.iterator();
while (i.hasNext()) {
JSONObject innerObj = (JSONObject)i.next();
currSongTitle = (String)innerObj.get("title");
currSongArtist = (String)innerObj.get("interpret");
}
} catch (Exception e) {
System.err.println(e);
}
}
向MCL寻求帮助:)