• 获取虾米音乐的歌词


    import java.io.BufferedWriter;  
    import java.io.File;  
    import java.io.FileOutputStream;  
    import java.io.OutputStreamWriter;  
    import java.util.List;  
    import java.lang.String;  
     
    import org.jsoup.Jsoup;  
    import org.jsoup.nodes.Document;  
    import org.jsoup.nodes.Element;  
    import org.jsoup.nodes.TextNode;  
    import org.jsoup.select.Elements;  
     
    public class Demo2 {  
     
        public static void main(String[] args) throws Exception {  
     
            Document doc = Jsoup.connect("http://www.xiami.com//artist/top-iim17edb"/*可输入任意艺人首页地址*/).get();// 访问艺人首页  
            Elements chapterUrls = doc.select(".song_name");// 爬取歌曲列表  
         
            for (Element chapterUrl : chapterUrls) {  
                Element usefulChapterUrl = chapterUrl.select("a").get(0);// 访问歌曲而不是mv  
                System.out.println("----------");
                System.out.println(usefulChapterUrl);
                String chapterLocation = "http://www.xiami.com" + usefulChapterUrl.attr("href");// 获得歌曲地址  
                Document chapterDoc = Jsoup.connect(chapterLocation)  
                        .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Fi").get();// 访问歌曲页面  
                String title = usefulChapterUrl.html().toString();// 歌名  
     
                File file = new File("D:\周杰伦\" + title + ".txt");// D盘创建文件  
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));  
                Elements ele = chapterDoc.select("#lrc").select(".lrc_main");// 爬取歌词  
     
                // 以每句歌词换行的形式输入文件  
                for (Element a : ele) {  
                    List<TextNode> texts = a.textNodes();  
                    for (int i = 0; i < texts.size(); i++) {  
                        TextNode t = texts.get(i);  
                        String content = t.text();  
                        bw.write(content);  
                        bw.newLine();  
                       // System.out.println(content);  
                    }  
     
                }  
                bw.close();  
            }  
        }  

  • 相关阅读:
    学习笔记:@RequestMapping
    学习笔记:serializable接口实现Java对象序列化
    学习笔记:JWT在spring中的时间
    学习笔记:JWT学习
    《OpenGL编程指南》学习进度备忘
    【练习7.4】使用直方图陆地移动距离EMD区分不同光线条件下的图片cvCalcEMD2
    【练习7.3】从直方图创建signature、计算两个直方图的EMD距离
    自动变量和开辟内存的生存期和作用域探讨
    【练习7.2】直方图归一化cvNormalizeHist、匹配cvCompareHist及各种匹配方法
    【练习7.1】cvCreateHist创建直方图、cvCalcHist计算直方图、cvQueryHistValue_1D访问直方图及右左法则
  • 原文地址:https://www.cnblogs.com/chenlove/p/8798182.html
Copyright © 2020-2023  润新知