python音樂下載,小白也能夠寫爬蟲

使用python下載音樂,小白也能夠寫爬蟲html

**
簡介:使用BeautifulSoup和request模塊進行抓取和解析,
最後保存音樂(注:音樂質量是普通品質的)
在這裏順便給你們推薦一個資源很全的python學習免非解答.裙 :七衣衣九七七巴而五(數字的諧音)轉換下能夠找到了,這裏有資深程序員分享之前學習心得,學習筆記,還有一線企業的工做經驗,且給你們精心整理一份python零基礎到項目實戰的資料,天天給你們講解python最新的技術,前景,學習須要留言的小細節
關於模塊的安裝,打開cmd輸入python

pip install bs4 //安裝BeautifulSoup
pip install requests //安裝requests
pip install fake_useragent //這個模塊能夠隨機生成一個headers

(不能安裝請升級pip或者以管理員模式打開cmd)程序員

咱們這裏爬取的是網易雲音樂瀏覽器

https://music.163.com/artist?id=4292 //爬取的連接
http://music.163.com/song/media/outer/url?id= //音樂播放外鏈連接

首先:咱們先進行網頁源碼獲取網絡

https://music.163.com/#/artist?id=4292
最開始咱們是直接來用這個連接來請求網頁的,可是咱們會發現返回的href元素是空的(#)。這個連接並非真正的歌單連接。dom


但經尋找會發現source中有個不同的網頁連接ide

接下來咱們會找到這個連接https://music.163.com/song?id=1407551413,看一眼是否是不太同樣。和原連接就一個‘/#’之差,內容就不同,這是網易雲隱藏了源網頁。
而後仔細查看就能夠找到音樂id和名稱學習

接下來就是代碼實現了url

import requests
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import timeorm

def get_html():
url = 'https://music.163.com/artist?id=4292'
headers = {
'User-Agent': UserAgent().random #隨機一個模仿瀏覽器請求頭
}
response = requests.get(url, headers=headers)
res = BeautifulSoup(response.text, 'lxml')
id_lists = res.find(class_='f-hide').find_all('a')
return id_lists

def download(names,hrefs):
#獲取音樂id後還要進行解析並保存
headers = {
'User-Agent': UserAgent().random
}
#這裏還要再加個headers,否則會假數據
url = 'http://music.163.com/song/media/outer/url?id='
#網易雲外鏈地址,經過這個能夠免費下載
response = requests.get(url+hrefs,headers=headers).content
#返回二進制
f = open('E:\\music\\{}.mp3'.format(names),'wb') #這裏下載的歌曲儲存到E盤music文件夾
f.write(response)
print('正在下載{}'.format(names))

if __name__ == '__main__':
get_html()
for id_url in get_html():
names = id_url.text
hrefs = id_url['href'][9:]
#用變量來接收歌曲名和id
download(names,hrefs)
time.sleep(1) #睡眠一秒,防止過於頻繁訪問


若是你想下載其餘歌曲能夠把url中的連接換掉,注意把‘/#’刪除以獲取真正的連接。這個代碼適用於歌單和專輯
最後順便給你們推薦一個資源很全的python學習免非解答.裙 :七衣衣九七七巴而五(數字的諧音)轉換下能夠找到了,這裏有資深程序員分享之前學習心得,學習筆記,還有一線企業的工做經驗,且給你們精心整理一份python零基礎到項目實戰的資料,天天給你們講解python最新的技術,前景,學習須要留言的小細節

本文的文字及圖片來源於網絡加上本身的想法,僅供學習、交流使用,不具備任何商業用途,版權歸原做者全部,若有問題請及時聯繫咱們以做處理。

相關文章
相關標籤/搜索