导入相应的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));
        }
    }

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

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

本文出自 “java爱好者” 博客,请务必保留此出处http://hzywy.blog.51cto.com/3249210/736461

jsoup解析百度音乐相关推荐

  1. 百度音乐java_jsoup解析百度音乐

    导入相应的jar包 **************************************************** package com.segsec.crm.baidu; import ...

  2. HtmlAgilityPack.dll爬虫获取百度音乐批量下载地址(C#源码)

    关于分析的过程和思路参考原来的一篇文章 <HtmlAgilityPack 爬虫批量获取百度音乐下载地址一> http://blog.csdn.net/witch_soya/article/ ...

  3. HtmlAgilityPack 爬虫批量获取百度音乐下载地址一

    2014年8月19日15:26:16 说明:  有些网友发私信或在资源下留言问现在为什么无法抓取百度音乐排行榜了,是不是源代码有问题或代码不全面. 首先感谢你的关注,其次想说这个小工具仅仅是通过抓取百 ...

  4. Java 爬虫工具Jsoup解析

    Jsoup是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址.HTML 文本内容.它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和 ...

  5. 百度音乐下载地址解析

    软件初步介绍: 为什么我要干这档子事情啊? 一个字,懒,太懒,懒得自己去找,懒得冲会员去下载一些高品质歌,所以干脆写个小东西来搞一搞吧.直接了当,干脆直接balbala一堆歌曲源下载地址,然后丢给迅雷 ...

  6. biabiamiamia百度音乐网批量歌曲下载工具

    [v1.5.20130315] 1)『除错』百度调整了专辑关联歌手名的html代码,biabiamiamia相应调整,否则会出现"未搜索到该歌手"的警告:[v1.4.2013030 ...

  7. 批量升级320k百度音乐(java版本)

    之前下载了一些mp3歌曲,但是有一些歌曲的音质比较差,想重新下载一些音质好一点的音乐. 通过搜索,发现百度有一些音质比较好的音乐提供下载.打算从百度音乐那里下载下来. 但是发现,要下载的歌曲数量太多了 ...

  8. Python多线程结合队列下载百度音乐的方法

    本文实例讲述了Python多线程结合队列下载百度音乐的方法.分享给大家供大家参考.具体如下: 一直想做个下载音乐的脚本,后来决定就拿百度音乐开刀,经过多次分析,终于制作了一个下载百度音乐的脚本,目前只 ...

  9. python下载百度音乐

    之前看到有人写过类似的代码,感觉有点累赘,其中登陆那些东西其实可以避免的 我把百度音乐的网页代码稍微分析了一下,如果要求不高,下载普通音质的歌曲是不需要登陆的(当然如果你用浏览器打开下载的话,普通音质 ...

最新文章

  1. 长文综述:给生物学家的机器学习指南
  2. 一次针对SAP系统的完美渗透测试
  3. 【Android 内存优化】Bitmap 长图加载 ( BitmapRegionDecoder 简介 | BitmapRegionDecoder 使用流程 | 区域解码加载示例 )
  4. python 虚拟环境使用
  5. Echarts的简单使用
  6. OCP换题库了,052新加的考题及答案整理-第16题
  7. mysql指令按顺序排列_mysql基本语法大全
  8. 第1课 编程是一门技术_动动脑 第1题
  9. php 修改cache数据,修改ThinkPHP缓存为Memcache的方法
  10. oracle+imp部分数据,ORACLE数据库IMP逻辑导入出现ORA-00910的处理案例
  11. 代码阅读工具-global
  12. 【正点原子MP157连载】第四十四章Linux SPI总线框架-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  13. 易语言易语言浏览器html5,易语言创建的浏览器源码
  14. 锁住文件linux,关于Linux文件锁定保护命令chattr
  15. 立体几何相关公式推导理解(球体、台体体积)
  16. 苹果开发者账户协议更新
  17. html修改鼠标代码,在HTML页面上更改鼠标光标
  18. 1817735-45-7,Carboxy-PEG2-sulfonic acid在EDC和HATU等活化剂存在下,末端羧酸可参与与伯胺的反应
  19. Kubernetes权威指南(下)
  20. Navicat Premium12安装_破解(亲测成功)时间:2019年7月29日

热门文章

  1. Elasticsearch安装-源码
  2. 使用sqljdbc连接mssql数据库,maven生成jar运行后报Exception in thread main java.lang.SecurityException错误...
  3. C# 代码注释生成代码提示和帮助文档
  4. 限制上传文件为jpg文件
  5. Windows server 2008 iis7 下配置PHP+MySql
  6. batch批处理(转载)
  7. PTA:6-2顺序表操作集(20分)
  8. 机器学习笔记-LightGBM
  9. 大数据对企业竞争的作用
  10. bitlife设置中文_bitlife下载-bitlife中文版 v1.1.3下载-6188手游网