您好,登錄后才能下訂單哦!
本篇內容主要講解“Python怎么爬取網站音樂素材”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python怎么爬取網站音樂素材”吧!
Python 3.6
Pycharm
import os import concurrent.futures import requests import parsel
安裝Python并添加到環境變量,pip安裝需要的相關模塊即可。
如果想要驗證這個鏈接是否是音頻的真實下載地址,可以復制鏈接粘貼到新的窗口中。
https://downsc.chinaz.net/Files/DownLoad/sound1/202102/s830.mp3
老思路了,復制鏈接中的某些參數在開發者工具中進行搜索,很明顯 s830 就是音頻的ID了。
搜索 s830 找到來源,發現網頁頁面中自帶有下載地址。獲取音頻下載地址之后需要自己拼接url。
網頁數據不復雜,相對而言還是比較簡單的。
1、請求當前網頁數據,獲取音頻地址以及音頻標題
2、保存下載就可以了
獲取音頻ID以及音頻標題
def main(html_url): html_data = get_response(html_url).text selector = parsel.Selector(html_data) lis = selector.css('#AudioList .container .audio-item') for li in lis: name = li.css('.name::text').get().strip() src = li.css('audio::attr(src)').get() audio_url = 'https:' + src save(name, audio_url) print(name, audio_url)
保存數據
def save(name, audio_url): header = { 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } audio_content = requests.get(url=audio_url, headers=header).content path = 'audio\\' if not os.path.exists(path): os.mkdir(path) with open(path + name + '.mp3', mode='wb') as f: f.write(audio_content)
這里想要重新給一個headers參數,不然會下載不了。代碼會一直運行,但是沒有反應
多線程爬取
if __name__ == '__main__': executor = concurrent.futures.ThreadPoolExecutor(max_workers=5) for page in range(1, 31): url = f'https://sc.chinaz.com/yinxiao/index_{page}.html' # main(url) executor.submit(main, url)
到此,相信大家對“Python怎么爬取網站音樂素材”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。