隨筆 - 22  文章 - 467  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(25)

          隨筆分類(74)

          文章分類(1)

          收藏夾(277)

          在線工具

          在線資料

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 217585
          • 排名 - 261

          最新評論

          閱讀排行榜

          評論排行榜

          // 打開豆瓣電臺 https://douban.fm/mine/# , 記得登錄, 看到自己的紅心列表就行
          // 按F12
          // 先拷貝下面這段到 console 運行, 注入 jquery 功能

          var body = document.getElementsByTagName('body')[0];
          var s = document.createElement('script');
          s.setAttribute('type', 'text/javascript');
          s.setAttribute('src', 'https://code.jquery.com/jquery-3.2.1.min.js');
          body.appendChild(s);

          //上面執行成功再拷貝執行下面的:

          var sectionCount = 100; // 每次從豆瓣拉取幾條歌曲詳情
          var outputCount = 150; // 每個區塊輸出幾首歌曲, 超過150條QQ音樂無法識別
          var limit = 0; // 只獲取前 limit 首歌曲
          var songIds = [];
          var songSection = [];
          var songInfos = []

          start();

          function start() {
              $.get("https://douban.fm/j/v2/redheart/basic", function (data) {
                  for (var i in data.songs) {
                      songIds.push(data.songs[i].sid);
                  }
                  if (limit > 0) {
                      songIds = songIds.slice(0, limit);
                  }
                  console.log("獲取到歌曲id " + songIds.length + "條");
                  loadSection();
              });
          }

          function loadSection() {
              songSection = [];

              var count = (songIds.length < sectionCount) ? songIds.length : sectionCount;
              songSection = songIds.slice(0, count);
              songIds.splice(0, count);

              var sectionIds = songSection.join("|");
              console.log("開始抓取歌曲 " + songSection.length + "條");
              console.log("剩余歌曲 " + songIds.length + "條");
              $.post("https://douban.fm/j/v2/redheart/songs", {
                  sids: sectionIds,
                  kbps: 192,
                  ck: "lM1o"
              }, function (data) {
                  // console.log(data);
                  for (var i in data) {
                      var songInfo = {};
                      songInfo.title = data[i].title;
                      songInfo.artist = data[i].artist;
                      songInfo.album = data[i].albumtitle;
                      songInfos.push(songInfo);
                  }
                  //console.log(songInfos);
                  if (songSection.length < sectionCount) {
                      processInfos();
                  } else {
                      setTimeout(loadSection, 3 * 1000);
                  }
              });
          }

          function processInfos() {
              $("body").html("");
              console.log("準備展示數據: " + songInfos.length + "條");
              while (songInfos.length > 0) {
                  outputSection = [];

                  var count = (songInfos.length < outputCount) ? songInfos.length : outputCount;
                  outputSection = songInfos.slice(0, count);
                  songInfos.splice(0, count);

                  var content = [];
                  content.push("歌曲標題<br>時長<br>歌手<br>專輯<br><br>");
                  for (var i = 0; i < outputSection.length; i++) {
                      content.push(outputSection[i].title);
                      content.push("<br><br>");
                      content.push(outputSection[i].artist);
                      content.push("<br>");
                      content.push(outputSection[i].album);
                      content.push("<br><br>");
                  }
                  $("body").append("<div contenteditable=\"true\" style=\"border: 1px solid black;" +
                      "padding: 1rem;margin: 1rem;max-height: 150px;overflow-y: scroll;\"><div>");
                  $("body > div:last").html(content.join(""));
              }

              console.log("數據展示完成");
              alert("完成, 請剪切區塊內容到導入頁面");
          }

          // 最后, 將頁面中出現的每個區塊內容分別剪切到QQ音樂的網易云導入頁面:
          // https://y.qq.com/portal/songlist_import.html?tab=2 
          // PS. 記得登錄.
          posted on 2017-08-11 16:13 ApolloDeng 閱讀(1484) 評論(0)  編輯  收藏 所屬分類: Js/JQuery/Ajax
          主站蜘蛛池模板: 贵德县| 张北县| 郸城县| 瑞安市| 德昌县| 察哈| 渭南市| 凤翔县| 墨脱县| 江永县| 阳信县| 阳高县| 深水埗区| 南充市| 泰安市| 昂仁县| 偃师市| 乌鲁木齐市| 娱乐| 颍上县| 吴忠市| 翁牛特旗| 舞阳县| 双桥区| 六盘水市| 马边| 土默特左旗| 大姚县| 陇南市| 和静县| 山丹县| 色达县| 富顺县| 望江县| 建阳市| 滦南县| 敦煌市| 东山县| 肥乡县| 宜都市| 铁力市|