疫情賦閒在家程序員公開python學習源碼,持續更新

最近疫情原因,我們公司比較“人性化”,在疫情剛剛爆發之後,我就逃離了毒圈,然後在家辦公,但是,相對在公司的時候,清閒了太多,又不知道去哪裏玩,於是,就在家辦個‘補習班‘,教家裏的小孩學編程,其中,python爬蟲就成爲我教他們內容的首選項,今天也開源一個小代碼,實現vip音樂的獲取

大家可以自己去下載玩一下

至於詳細的爬蟲實現原理,我在之前的文章中進行過詳細的講解,大家可以看一下:

五步帶你探究爬蟲爬取視頻彈幕背後的真相,附爬蟲實現源碼

好了,話不多說,上代碼:

開發工具:pycharm

開發環境:python3.8.5


#通過一個網站 拿他的數據
#爬蟲的核心步驟 => 獲取url 接受響應(發送請求) 篩選數據 保存本地
#代碼前面寫上本次案例需要用到的擴展包(模塊)
import requests #python代碼模擬瀏覽器發送網絡請求
import json #做json處理
​
def main():
 #你們想要獲取哪個歌手的歌
 geshou = str(input('請輸入指定歌手的名稱: '))
 # print(geshou)
 #獲取多少個頁面的歌
 yeshu = int(input('請輸入指定頁數: '))
 #0-yeshu
 #1-yeshu+1
 for i in range(1,yeshu+1):
 url = "http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={}&pn={}&rn=30&httpsStatus=1&reqId=00f6f9b0-572e-11eb-acc3-fbf111a8d0de".format(geshou,i)
 #僞裝瀏覽器
 headers = {
 #鍵值對的方式   瀏覽器的類型
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
 "Referer": "http://www.kuwo.cn/search/list?key=%E5%91%A8%E6%9D%B0%E4%BC%A6",
 "csrf": "HTJJKH4VAQ",
 "Cookie":"_ga=GA1.2.1345614870.1610439929; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1610439929,1610687692; _gid=GA1.2.1361641767.1610687692; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1610714039; _gat=1; kw_token=HTJJKH4VAQ"
 }
 #發送請求
 res = requests.get(url,headers=headers)
 # print(res.text)
 html = res.text
 jsons = json.loads(html)
 # print(jsons)
 data = jsons['data']['list']
 # print(data)
​
 for i in data:
 #音樂名字
 name = i['name']
 # 音樂ID
 rid = i['rid']
 # 後臺頁面拿到指定歌手歌曲的音樂路徑
 url = "http://www.kuwo.cn/url?format=mp3&rid={}&response=url&type=convert_url3&br=128kmp3&from=web&t=1610714066130&httpsStatus=1&reqId=00f83230-572e-11eb-acc3-fbf111a8d0de".format(rid)
 result = requests.get(url, headers=headers).json()
 # print(result.text)
 music_url = result['url']
 # print(music_url)
 #下載
 with open(r'C:\Users\SunComputer\Desktop\VIP音樂/{}.mp3'.format(name),'wb')as f:
 print('正在下載{}'.format(name), end='')
 music = requests.get(music_url)
 f.write(music.content)
 print('\t下載完畢')
​
main()
​
​</pre>

剛剛接觸python的小夥伴,可以每獲取一步數據就打印一次,這樣可能對於你的理解有一定的幫助

碼雲中我已經上傳了一些Java相關得學習代碼,包括Java基礎、微服務框架,多線程實現案例等,大家可以自行下載

Java:源碼分享地址

python:源碼分享地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章