public void getAndSaveSongInfo(Document doc, String mid, String id) {
    ArrayList<String> SongInfo = null;
    sInfo = new SongInfo();
    sInfo.id = id;
    if (!crawledSongs.contains(mid)) {
      crawledSongs.add(mid);
      sInfo.mid = mid;
      if (doc != null) {
        String sname = doc.select("div.song_title").select("span").text();
        sInfo.sname = sname;
        SongInfo = extractSongInfo(doc);
      } else {
        System.err.println("The html is not fetched!");
      }
      if (SongInfo != null && SongInfo.size() > 0) {
        sInfo.singer = SongInfo.get(0);
        sInfo.language = SongInfo.get(1);
        sInfo.album = SongInfo.get(2);
        sInfo.date = SongInfo.get(3);
      }

      sDao.insertSongInfo(sInfo);
      sDao.updateSongInfo(sInfo.mid, id);
    }

    crawledSongs.add(mid);
  }