导入相应的jar包

****************************************************

package com.segsec.crm.baidu;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class BaiduMp3 {
    private BaiduMp3(){}
    private static BaiduMp3 mp3;
    static{
        mp3=new BaiduMp3();
    }
    public synchronized static BaiduMp3 getInstance(){
        if(mp3==null){
            mp3=new BaiduMp3();
        }
        return mp3;
    }
    /*
     * 解析歌手
     */
    //http://list.mp3.baidu.com/top/singer/A.html
    public String parseSingerlist(String charCode){
        String html="http://list.mp3.baidu.com/top/singer/"+charCode+".html";
        try {
                URL url=new URL(html);   
                Document doc=Jsoup.parse(url,1000*100);
                //根据唯一标识解析
                Element singerlistDiv=doc.getElementsByAttributeValue("class", "content").first();
                //Element singerlistDiv=doc.getElementsByClass(className)
                Elements links=singerlistDiv.getElementsByTag("a");
                for(Element link:links){
                    String linkHref=link.attr("href");
                    String linkText=link.text().trim();
                    System.out.println(linkText);               
                    //System.out.println("linkHref"+linkHref);

                    if(!"".equals(linkText)){
                       writetofile(charCode,linkText,linkHref,"f:/baiduSinger.txt");
                    }
                   
                }
           
           
            //System.out.println(links.size());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "";
    }
    public List<String> getCharCode(){
        String url="http://list.mp3.baidu.com/top/singer/A.html";
        List<String> charlist=new ArrayList<String>();
        try {
            URL u=new URL(url);
            Document doc=Jsoup.parse(u, 1000*10);
            Element charBarDiv=doc.getElementsByAttributeValue("class", "bar").first();
            Elements links=charBarDiv.getElementsByTag("a");
            for(Element link:links){
                charlist.add(link.text().trim());
            }
            System.out.println(charlist.size());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return charlist;
    }
    /*
     * 解析所有歌曲
     */
    //http://mp3.baidu.com/m?rf=top-singer&tn=baidump3&ct=134217728&lm=-1&word=%B0%B2%BF%B5
    public String parseSongsBySinger(String singerName){

        return "";
    }
    public void writetofile(String charCode,String line,String url,String dir){
        BufferedWriter bww=null;
 
        try {
            bww=new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream("f:/baiduSinger.txt",true),"UTF-8"));
            StringBuffer s = new StringBuffer();
            s.append(line).append("|").append(charCode);
            bww.write(s.toString().trim());
            bww.newLine();
            bww.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            freeIO(bww);
        }
    }
    public void freeIO(BufferedWriter bww){  
            try {
                if(bww!=null)
                bww.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        BaiduMp3 mp3=new BaiduMp3();
        List<String> strs=mp3.getCharCode();
        for(int i=0;i<strs.size()-1;i++){
            mp3.parseSingerlist(strs.get(i));
        }
    }

}
**********************************

此程序只解析出了百度音乐歌手 解析歌曲其实方法类似 只是唯一标识不同