整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「教程」免費下載QQ音樂中的付費音樂

          「教程」免費下載QQ音樂中的付費音樂

          QQ音樂》是大家比較常用的音樂播放軟件,但好多音樂因版權的原因需要付費后才能下載,今天就教大家免費下載QQ音樂中的付費音樂。

          步驟

          1、首先打開瀏覽器(這里以搜狗瀏覽器為例),在地址欄中輸入QQ音樂的官方地址,進入QQ音樂官方網站的首頁。

          QQ音樂首頁

          2、在QQ音樂首頁的搜索框中輸入你想要的歌曲并搜索(這里以回小仙的《醒不來的》為例)。

          3、點擊此歌曲的播放按鈕,跳轉到播放界面。

          播放界面

          4、按下鍵盤上的F12鍵,在網頁的右側(或者下方)會彈出網頁代碼窗口,在其中找到第一個src代碼,如下圖所示,將src="" 雙引號內的鏈接復制下來。

          Ps:在雙引號內雙擊即可選中引號內的鏈接。

          代碼

          5、新建一個網頁,在地址欄中粘貼剛才復制的鏈接并回車,將會打開一個黑色底面的播放窗口。

          新建網頁

          6、點擊此窗口播放進度條右側下載按鈕(豎3點),彈出一個下載文件的對話框,重新命名并選擇保存的位置后,點擊下載即可。

          下載

          擴展

          下載后的文件的擴展名為.m4a,如果你需要把文件轉換為mp3格式,可以參考以下步驟。

          1、啟動QQ音樂客戶端,選擇程序右上角的主菜單,在彈出的子菜單中選擇“音頻轉碼”。

          2、在彈出的音頻轉碼對話框中,選擇“添加歌曲”,然后設置好轉換文件的保存位置后,點擊“開始轉換”按鈕對歌曲進行轉換。

          3 等待轉換完成后,就會得到.MP3格式的文件了。

          局限性

          這個方法有一定的局限性,它只適用于能在網頁上播放的歌曲,部分歌曲會提示“僅限客戶端播放”,這時就只能打開客戶端在線播放了^_^

          僅限客戶端播放

          結尾

          以上就是“免費下載QQ音樂中的付費音樂”的全部內容了,如果你覺得對你有幫助的話還請多多點贊,收藏和轉發,謝謝!

          .前言

          QQ音樂官網:點擊訪問

          作者成品效果預覽:點擊訪問

          作者其他博客成品匯總預覽:點擊訪問

          暫時源碼并沒有提供其他獲取渠道,私聊作者獲取即可,或通過博客后面名片添加作者,很簡單!

          二.主要功能點列表

          頂級菜單

          二級菜單

          歌單推薦

          新歌首發

          精彩推薦

          新碟首發

          排行榜

          MV

          通用網站底部(版權、企業信息等)

          三.產品效果圖

          1.切換頂級菜單、二級菜單:

          2.歌單推薦(菜單切換+輪播):

          3.新歌首發(菜單切換+輪播):

          4.精彩推薦(輪播):

          5.新碟首發(菜單切換+輪播):

          6.排行榜(背景圖裁剪實現:background-position屬性):

          7.MV(菜單切換+輪播):

          四.實現

          項目目錄截圖:

          img存放各種靜態圖片資源等;

          page目錄是通用目錄文件(看名稱幾乎也能明白了),top就是網站通用頂部,index就是框架通用主體盒子,foot就是網站通用底部;

          router就是路由;

          views其他功能目錄文件,子目錄home目錄為首頁,其他子目錄功能待開發實現;

          components為組件存放目錄,子目錄home專門存放首頁組件頁面(歌單推薦、新歌首發、精彩推薦。。mv等),所以首頁已經被拆分成各個子頁面,非常美觀和利于后續功能拓展或修改

          首頁主頁面 views/home/index.vue,通過引入子頁面組件:

          <template>

          <div style="font-size: 14px;">

          <song-sheet-recommend></song-sheet-recommend>

          <new-song-first></new-song-first>

          <hot-recommend></hot-recommend>

          <new-dish-first></new-dish-first>

          <ranking-list></ranking-list>

          <mv></mv>

          </div>

          </template>

          <script>

          import songSheetRecommend from "../../components/home/song_sheet_recommend.vue";

          import newSongFirst from "../../components/home/new_song_first.vue";

          import hotRecommend from "../../components/home/hot_recommend.vue";

          import newDishFirst from "../../components/home/new_dish_first.vue";

          import rankingList from "../../components/home/ranking_list.vue";

          import mv from "../../components/home/mv.vue";

          export default {

          components: {

          songSheetRecommend,

          newSongFirst,

          hotRecommend,

          newDishFirst,

          rankingList,

          mv

          },

          data() {

          return {

          };

          },

          mounted() {

          },

          methods: {

          }

          };

          </script>

          <style>

          </style>

          歌單推薦(首頁其中子頁面之一),菜單切換,模擬數據交互,types1和types2賦值給types:

          <template>

          <div class="mod_bg" style="font-size: 14px;">

          <div style="margin: 0 10%;">

          <div class="mod_title">

          歌單推薦

          </div>

          <div class="mod_small_title">

          <span v-for="(item,index) in submenus" :key="index" :class="subMenuIndex!==index?'sub-menu-hover':''" @click="selSubMenu(index)" :style="'padding: 10px 30px;'+(subMenuIndex===index?'color: #31c27c;':'')">

          {{item.name}}

          </span>

          </div>

          <div>

          <el-carousel trigger="click" :autoplay="false" height="350px">

          <el-carousel-item v-for="i in 4" :key="i" indicator-position="outside">

          <div style="margin: 0 10%;" class="recommend-box">

          <div class="recommend-item" v-for="(item,index) in types" :key="index">

          <div class="play-item">

          <div style="text-align: center;height: 224px;overflow: hidden;">

          <el-image :src="item.img" fit="cover" style="width: 100%;height: 224px;" class="cover"></el-image>

          </div>

          <div class="play-box">

          <img src="../../../public/img/cover_play.png">

          </div>

          </div>

          <div class="recommend-item-title title-active">

          {{item.name}}

          </div>

          <div class="recommend-item-des">

          播放量:{{item.playNum}}

          </div>

          </div>

          </div>

          </el-carousel-item>

          </el-carousel>

          </div>

          </div>

          </div>

          </template>

          <script>

          export default {

          data() {

          return {

          subMenuIndex: 0,

          submenus: [

          {name:'為你推薦'},

          {name:'經典'},

          {name:'網絡歌曲'},

          {name:'韓語'},

          {name:'官方歌單'},

          {name:'情歌'},

          ],

          types:[],

          types1:[

          {name:'二哥抖音最火',playNum:'4357.9萬',img:require('../../../public/img/recommend1.jpg')},

          {name:'華語天花板:奏響青春的時代樂章',playNum:'1190.5萬',img:require('../../../public/img/recommend2.jpg')},

          {name:'冬季限定 ·冰雪世界專屬電音BGM',playNum:'4.3萬',img:require('../../../public/img/recommend3.jpg')},

          {name:'車載DJ熱歌:輕松一路Fun肆嗨!',playNum:'4534.6萬',img:require('../../../public/img/recommend4.jpg')},

          {name:'愛的故事翻篇,被愛的人不用道歉',playNum:'2037.3萬',img:require('../../../public/img/recommend5.jpg')}

          ],

          types2:[

          {name:'不為人知的天才,老一輩香港音樂人',playNum:'51.5萬',img:require('../../../public/img/recommend6.jpg')},

          {name:'以漂亮的姿勢,穿越到八十年代',playNum:'87.5萬',img:require('../../../public/img/recommend7.jpg')},

          {name:'「經典粵語」唱著你我的悲歡離合',playNum:'123.3萬',img:require('../../../public/img/recommend8.jpg')},

          {name:'重溫一把當年的火,粵語經典',playNum:'104.9萬',img:require('../../../public/img/recommend9.jpg')},

          {name:'有一種歌詞,叫小美',playNum:'315.7萬',img:require('../../../public/img/recommend10.jpg')}

          ]

          };

          },

          mounted() {

          this.types=this.types1;

          },

          methods: {

          selSubMenu(index){//切換菜單

          this.subMenuIndex=index;

          console.info(index % 2);

          if(index % 2===0){

          this.types=this.types1;

          }else{

          this.types=this.types2;

          }

          },

          }

          };

          </script>

          <style>

          .mod_bg {

          background: url("../../../public/img/bg_detail.jpg") 50% 0 repeat-x;

          /*background: linear-gradient(to bottom, #FFFFFF,#FFFFFF,#FFFFFF, #eeeeee);*/

          }

          .mod_bg .el-carousel__button{

          background-color: #67e56d !important;

          }

          .mod_title{

          height: 40px;

          line-height: 40px;

          font-size: 28px;

          font-weight: bolder;

          color: #3a3a3a;

          text-align: center;

          padding: 50px 0 24px 0;

          letter-spacing:10px;

          }

          .mod_small_title{

          text-align: center;

          height: 50px;

          line-height: 50px;

          font-size: 15px;

          }

          .recommend-box{

          display: flex;

          }

          .recommend-item{

          width: calc(20% - 0px);

          margin: 10px 10px 10px 10px;

          cursor: pointer;

          }

          .recommend-item:first-of-type{

          margin: 10px 10px 10px 0!important;

          }

          .recommend-item:last-of-type{

          margin: 10px 0 10px 10px!important;

          }

          .recommend-item-title{

          height: 22px;

          line-height: 22px;

          overflow: hidden;

          text-overflow: ellipsis;

          margin-top: 15px;

          }

          .title-active:hover{

          cursor: pointer;

          color: #31c27c;

          }

          .recommend-item-des{

          color: #999;

          }

          .play-box{

          opacity: 0;

          position: relative;

          text-align: center;

          height: 224px;

          overflow: hidden;

          margin-top: -224px;

          background-color: rgba(161, 161, 161, 0.5);

          }

          .play-box img{

          width: 25px;

          height: 25px;

          margin-top: 87px;

          }

          .play-item:hover .cover{

          transition: transform 1s ease 0s;

          transform: scale(1.1);

          }

          .play-item:hover .play-box{

          opacity: 1;

          }

          .play-item:hover .play-box img{

          transition: transform 0.5s ease 0s;

          transform: scale(2);

          }

          </style>

          五.總結

          以QQ音樂官方網站作為參考,模擬實現,實現最終的效果還是滿意的,樣式交互等也是最大化模擬官方的,后續再不斷完善、增加其他功能和其他頁面。


          需要源碼:點贊 + 關注 + 留言 + 私信


          覺得不錯的點個贊,如有建議的請留言,非常感謝!
          如需幫助,私聊作者即可!再次感謝~

          薦學習

          • 金三即過,這300道python高頻面試都沒刷,銀四怎么闖?

          本文對使用到的技術僅做簡單的介紹,若想了解更多,請前往相應的官網網站進行學習。
          本文適合對爬蟲相關知識接觸不多的新手,主要是普及Selenium如何做爬蟲,大佬請跳過。

          01 Selenium簡單介紹

          1.1.簡介

          • Selenium是一個用于測試網站的自動化測試工具,支持各種主流界面瀏覽器。
          • 簡而言之,Selenium是一個用來做網站自動化測試的庫,它的定位是做自動化測試的。我們也可以利用它來做爬蟲,獲取一些網頁信息,并且這種爬蟲是模擬真實瀏覽器操作的,實用性更強。
          • Selenium是市面上唯一一款可以與付費產品競爭的自動化測試工具。
          • 如果想了解更多,可以前往Selenium中文網學習

          1.2.安裝

          • 要使用Selenium首先要在python中安裝相關的庫:
          pip install Selenium
          • 安裝相應瀏覽器的webdricer驅動文件,這里提供chrome的鏈接,其它瀏覽器網上搜一搜就有。選擇合適的版本,我選擇的是2.23。
          • 下載解壓后得到exe文件,將這個文件拷貝到chrom的安裝文件夾下:
          • 一般是C:\Program Files (x86)\Google\Chrome\Application,或者是C:\Program Files\Google\Chrome\Application。

          • 然后將該路徑配置到環境變量中:

          • 最后到寫段代碼測試一下:
          from selenium import webdriver
          driver=webdriver.Chrome(executable_path="C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

          如果看到開啟了一個瀏覽器窗口就是成功了,否則下面會有相應的報錯信息,需要檢查前面的步驟。

          1.3.簡單使用介紹

          1.元素定位方式:

          • 基本上前幾種方式就能夠獲取到需要的元素,需要自己辨別結果是否唯一來選擇相應的選擇器。
          • 通過drive對象調用此方法,返回的是標簽對象,或者是標簽對象的列表,可以通過.text獲取該標簽下的文字,可以通過get_attribute()獲取標簽的其它屬性值。

          分享快速定位元素的小妙招:看所需信息所在的標簽的id,class,name的名稱是否與標簽下信息的語義有關,一般有關的都代表是唯一的。(從開發者的角度去思考)若無法通過當前標簽唯一定位,則考慮父級標簽,一次類推,總是能找到定位的方法的。

          2.鼠標事件(模擬鼠標操作)

          • 通過標簽對象調用即可。

          3.鍵盤事件(模擬鍵盤操作)

          4.其他操作

          • 其他操作包括控制瀏覽器的操作,獲取斷言信息,表單切換,多窗口切換,警告框處理,下拉框處理,文件上傳操作,cookie操作,調用js代碼,截圖,關閉瀏覽器等操作,因為在這里用的不多,就沒有一一羅列,自行去官網學習。

          02 爬取目標

          • 這個實戰爬蟲主要完成以下目標:
          • 爬取QQ音樂官網指定歌手的前5首歌曲的基本信息和前五百條熱門評論。

          2.1 獲取前五歌曲的url

          • 分析該頁面的代碼得知,包裹所有歌曲信息的標簽的class是唯一的,我們可以獲取到它,再遍歷所有子標簽,也可以一次得到所有包裹歌曲信息的div,再獲取里面的a標簽。

          2.2 獲取歌曲基本信息

          • 可以看到基本信息標簽里的class名稱是有一部分帶語義的,那么通過css選擇器肯定可以唯一確定下來。

          2.3 獲取歌詞

          • 頁面上的歌詞不完整,似乎需要點擊展開才行,但其實所有歌詞已經在標簽里面了,只是顯示的問題了。

          2.4 獲取前五百條評論消息

          • 我們可以看到熱門評論一次是十五條,下面有一個點擊加載更多鏈接,點了之后會多出15條。
          • 我們需要模擬點擊33次,獲得510條評論

          2.5 寫入CSV文件

          使用csv庫,將爬取到的數據寫入到csv文件中進行持久化。

          2.6 實現代碼

          from selenium import webdriver
          import csv
          from time import sleep
          import time
          #
          #  Author : ATFWUS
          #  Date : 2021-03-21 20:00
          #  Version : 1.0
          #  爬取周杰倫最熱門五首歌曲的基本信息,歌詞,前五百條熱門評論
          #  此代碼僅供交流學習使用
          #
          #1.創建Chrome瀏覽器對象,這會在電腦上在打開一個瀏覽器窗口
          driver=webdriver.Chrome(executable_path="C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
          #2.打開QQ音樂 -周杰倫頁面
          driver.get("https://y.qq.com/n/yqq/singer/0025NhlN2yWrP4.html")
          #3.配置
          csv_file=open('songs.csv','w',newline='',encoding='utf-8')
          writer=csv.writer(csv_file)
          start=time.time()
          # 取前5首歌曲
          song_numer=5
          song_url_list=[]
          song_resourses=[]
          songlist__item=driver.find_elements_by_class_name("songlist__item")
          # 獲取所有歌曲url
          for song in songlist__item:
              song__url=song.find_element_by_class_name("js_song").get_attribute("href")
              song_url_list.append(song__url)
              song_numer-=1
              if(song_numer==0):
                  break
          # print(song_url_list)
          print("已獲取周杰倫熱門歌曲列表前五首的url")
          print()
          # 獲取一首歌曲所需要的信息
          def getSongResourse(url):
              song_resourse={}
              driver.get(url)
              # 這個0.5秒用于等待異步請求的完成
              sleep(0.8)
              # 獲取歌曲名
              song_name=driver.find_element_by_class_name("data__name_txt").text
              print("開始獲取歌曲《"+song_name+"》的基本信息")
              # 獲取流派,發行時間,評論數
              song_liupai=driver.find_element_by_css_selector(".js_genre").text[3:]
              song_time=driver.find_element_by_css_selector(".js_public_time").text[5:]
              song_comment_num=driver.find_element_by_css_selector(".js_into_comment").text[3:-1]
              print("歌曲《" + song_name + "》基本信息獲取完畢")
              print("開始獲取歌曲《" + song_name + "》的歌詞")
              # 點擊展開歌詞
              driver.find_element_by_partial_link_text("[展開]").click()
              sleep(0.3)
              lyic=""
              # 獲取拼接歌詞
              lyic_box=driver.find_element_by_id("lrc_content").find_elements_by_tag_name("p")
              for l in lyic_box:
                  if l.text!="":
                      lyic+=l.text+"\n"
              print("歌曲《" + song_name + "》的歌詞獲取完畢")
              print("開始獲取歌曲《" + song_name + "》的第1-15條熱門評論")
              # 獲取500條評論
              comments=[]
              # 點擊加載更多29次,每次多出15條評論
              for i in range(33):
                  driver.find_element_by_partial_link_text("點擊加載更多").click()
                  print("開始獲取歌曲《" + song_name + "》的第"+str((i+1)*15+1)+"-"+str((i+2)*15)+"條熱門評論")
                  sleep(0.5)
              comments_list=driver.find_element_by_css_selector(".js_hot_list").find_elements_by_tag_name("li")
              for com in comments_list:
                  content=com.find_element_by_css_selector(".js_hot_text").text
                  content_time=com.find_element_by_css_selector(".comment__date").text
                  zan_num=com.find_element_by_class_name("js_praise_num").text
                  comment={}
                  comment.update({"評論內容":content})
                  comment.update({"評論時間":content_time})
                  comment.update({"評論點贊次數":zan_num})
                  comments.append(comment)
              print("歌曲《" + song_name + "》的前五百條熱門評論獲取完畢")
              print("歌曲《"+song_name+"》所有信息獲取完畢")
              print()
              song_resourse.update({"歌曲名":song_name})
              song_resourse.update({"流派":song_liupai})
              song_resourse.update({"發行時間":song_time})
              song_resourse.update({"評論數":song_comment_num})
              song_resourse.update({"歌詞":lyic})
              song_resourse.update({"500條精彩評論":comments})
              return song_resourse
          for song_page in song_url_list:
              song_resourses.append(getSongResourse(song_page))
              # break
          print("正在寫入CSV文件...")
          for i in song_resourses:
              writer.writerow([i["歌曲名"],i["流派"],i["發行時間"],i["評論數"],i["歌詞"]])
              for j in i["500條精彩評論"]:
                  writer.writerow([j["評論內容"],j["評論時間"],j["評論點贊次數"]])
              writer.writerow([])
          csv_file.close()
          end=time.time()
          print("爬取完成,總耗時"+str(end-start)+"秒")

          2.7 代碼注意事項

          • 注意在驅動對象get請求網頁之后,要sleep一段時間,這段時間是網站用來進行ajax請求獲取所需數據的,如果不sleep,那么你獲取的數據很有可能是空的,或者是默認值。
          • 整個爬下來大概10分鐘的樣子,我已經將進度輸出,不要提前關閉,因為我是最后才寫入csv文件的, 提前關閉csv文件里什么也沒有。
          • QQ音樂最近有個bug,就是點擊去獲取更多后,新增的15條評論還是最初的,可能也是網的原因,代碼那里應該沒有問題的。
          • 這個代碼主要用于爬取主要數據,很多模擬操作可能不完善。

          2.8 使用Padas庫簡單的計算數據

          • 有關Padas庫的使用,它的兩種數據結構,請查看官網,這里不做說明。
          • 先讀取csv文件中的數據到內存中,再進行操作。
          • 需要先安裝padas庫:
          pip install padas
          import pandas as pd
          import csv
          # 這五個列表用于創建Series
          se=[]
          names=[]
          # 先讀取CSV文件的內容至內存中
          with open("songs.csv",'r',encoding="utf8") as f:
              # 創建閱讀器對象
              reader=csv.reader(f)
              rows=[row for row in reader]
              index=0
              print("開始解析CSV數據...")
              for i in range(5):
                  s1=[]
                  # 讀取第一行信息
                  names.append(rows[index].__str__().split(',')[0][2:-1])
                  index+=1
                  # 讀取五百條評論的點贊消息
                  for j in range(510):
                      s1.append(int(rows[index].__str__().split(',')[2][2:-2]))
                      index+=1
                  se.append(s1)
                  # 讀取掉空行
                  index+=1
              print("CSV數據解析成功\n")
          
          # 創建的5個series
          for i in range(5):
              series=pd.Series(se[i])
              print("歌曲《"+names[i]+"》的平均點贊次數是:" + str(series.mean()))
              print("歌曲《" + names[i] + "》的標準差是:" + str(series.std()))
              print()

          2.9 大致結果截圖

          感嘆:爬下幾千條評論,看了之后,發現,有傷感那味了,哈哈哈

          作者:ATFWUS

          原文鏈接:https://blog.csdn.net/ATFWUS/article/details/115053245


          主站蜘蛛池模板: 亚洲国模精品一区| 精品无码成人片一区二区| 日本不卡一区二区视频a| 一区二区三区在线播放| 老鸭窝毛片一区二区三区| 亚洲大尺度无码无码专线一区| 精品无码人妻一区二区免费蜜桃 | 中文字幕aⅴ人妻一区二区| 国产一区二区三区视频在线观看| 亚洲AV无码一区二区三区牛牛| 亚洲第一区视频在线观看| 亚洲制服丝袜一区二区三区| 中文字幕一区二区三区人妻少妇 | 色狠狠AV一区二区三区| 色国产精品一区在线观看| 亚洲天堂一区二区三区四区| 色综合视频一区中文字幕| 国产伦精品一区二区三区免.费| 国产激情一区二区三区小说| 国产精品va一区二区三区| 日韩精品一区二区三区视频| 久久精品人妻一区二区三区| 精品一区二区三区在线视频| 久久精品视频一区二区三区| 无码精品尤物一区二区三区| 日韩精品一区二区三区毛片| 一区二区三区四区在线观看视频 | 日韩人妻精品无码一区二区三区 | 八戒久久精品一区二区三区| 一区二区免费电影| 久久久无码精品国产一区| 国产日韩一区二区三区| 成人精品一区久久久久| 中文字幕精品一区二区三区视频| 亚洲制服中文字幕第一区| 亚洲综合无码一区二区痴汉| 无码日韩人妻AV一区免费l| 国产精品区一区二区三在线播放 | 国产精品伦一区二区三级视频 | 日韩一区二区精品观看| 国产一区二区三区91|