python 2.7 音訊《三國演義》下載
阿新 • • 發佈:2018-11-10
自己總結的一些思路: 1.先到所要下載的音訊的網頁查詢網路的一些基本資訊(url,headers) 2.在network裡查詢json檔案,得到下載所在的網頁路徑 3.開始編碼 4.先正則匹配到每章節的id和名稱 5.找到該章節下載所在的網頁 6.正則匹配下載網頁裡的下載網址 7.以.m4a的 形式存到本地 #coding=utf-8 import requests import re from bs4 import BeautifulSoup def get_url(url): headers = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36", } res = requests.get(url, headers=headers) return res def main(): url = "https://www.ximalaya.com/renwen/268522/" res = get_url(url) res.encoding="utf-8" html = res.text soup = BeautifulSoup(html, features='lxml') #檢視一下網頁 print soup.prettify() # 將網頁格式化 #正則匹配一下《三國演義》的id以及他的章節名稱 reg = 'href="/lishi/268522/(.*?)">(.*?)</a>' name_url = re.findall(reg,html) for sound_id,title in name_url: #輸出id和章節檢視一下 print sound_id,title #找到對應章節下載的所在的網頁 json.url = 'http://www.ximalaya.com/tracks/'+str(sound_id)+'.json' print json.url r = get_url(json.url) #正則匹配一下下載路徑 regs = '"play_path_64":"(.*?)"' sound_url = re.findall(regs,r.text) print sound_url[0] #將該章節以.m4a形式下載到本地檔案中 ret =get_url(sound_url[0]) with open("C://img222//"+title+'.m4a','wb') as f: f.write(ret.content) if __name__ == "__main__": main()