zoukankan      html  css  js  c++  java
  • 获取虾米音乐的歌词

    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();  
            }  
        }  

  • 相关阅读:
    Dictionary<string, object>不区分大小写
    修改Windows远程桌面端口
    LookupError: unknown encoding: cp65001的问题
    Git命令基本操作备忘
    MariaDB10 修改默认密码
    android去除标题栏
    解决Eclipse中Android SDK Manager图标不见了的问题
    HTML邮件注意事项
    不同内核浏览器的差异以及浏览器渲染简介(转)
    DIV+CSS两种盒子模型
  • 原文地址:https://www.cnblogs.com/chenlove/p/8798182.html
Copyright © 2011-2022 走看看