JSoup刷新页面

时间:2014-05-20 18:27:45

标签: web-scraping jsoup refresh

我遇到了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();
    }

}

1 个答案:

答案 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寻求帮助:)