日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python爬蟲新手入門教學(xué)(十六):爬取網(wǎng)站音樂素材

 行者花雕 2021-05-05

前言

本文的文字及圖片來源于網(wǎng)絡(luò),僅供學(xué)習、交流使用,不具有任何商業(yè)用途,如有問題請及時聯(lián)系我們以作處理。

Python爬蟲、數(shù)據(jù)分析、網(wǎng)站開發(fā)等案例教程視頻免費在線觀看

https://space.bilibili.com/523606542

前文內(nèi)容

Python爬蟲新手入門教學(xué)(一):爬取豆瓣電影排行信息

Python爬蟲新手入門教學(xué)(二):爬取小說

Python爬蟲新手入門教學(xué)(三):爬取鏈家二手房數(shù)據(jù)

Python爬蟲新手入門教學(xué)(四):爬取前程無憂招聘信息

Python爬蟲新手入門教學(xué)(五):爬取B站視頻彈幕

Python爬蟲新手入門教學(xué)(六):制作詞云圖

Python爬蟲新手入門教學(xué)(七):爬取騰訊視頻彈幕

Python爬蟲新手入門教學(xué)(八):爬取論壇文章保存成PDF

Python爬蟲新手入門教學(xué)(九):多線程爬蟲案例講解

Python爬蟲新手入門教學(xué)(十):爬取彼岸4K超清壁紙

Python爬蟲新手入門教學(xué)(十一):最近王者榮耀皮膚爬取

Python爬蟲新手入門教學(xué)(十二):英雄聯(lián)盟最新皮膚爬取

Python爬蟲新手入門教學(xué)(十三):爬取高質(zhì)量超清壁紙

Python爬蟲新手入門教程(十四):爬取有聲小說網(wǎng)站數(shù)據(jù) 

Python爬蟲新手入門教學(xué)(十五):Python爬取某音樂網(wǎng)站的排行榜歌曲

基本開發(fā)環(huán)境

  • Python 3.6

  • Pycharm

相關(guān)模塊的使用

import osimport concurrent.futuresimport requestsimport parsel

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。

一、確定需求

找不到合適的音頻素材?Python批量爬取音頻素材網(wǎng)站


雖然上面顯示需要付費下載,但是一樣可以免費下載。

二、網(wǎng)頁數(shù)據(jù)分析

打開開發(fā)者工具,點擊播放音頻,在Media中會加載出音頻的url地址。

找不到合適的音頻素材?Python批量爬取音頻素材網(wǎng)站


如果想要驗證這個鏈接是否是音頻的真實下載地址,可以復(fù)制鏈接粘貼到新的窗口中。

找不到合適的音頻素材?Python批量爬取音頻素材網(wǎng)站


它會自動下載一個音頻文件。并且這個音頻文件是可以播放的,和網(wǎng)頁上面的音頻聲音是可以對上的。
事實證明這個就是我們要獲取音頻地址。

找不到合適的音頻素材?Python批量爬取音頻素材網(wǎng)站
https://downsc./Files/DownLoad/sound1/202102/s830.mp3

老思路了,復(fù)制鏈接中的某些參數(shù)在開發(fā)者工具中進行搜索,很明顯 s830 就是音頻的ID了。

找不到合適的音頻素材?Python批量爬取音頻素材網(wǎng)站


搜索 s830 找到來源,發(fā)現(xiàn)網(wǎng)頁頁面中自帶有下載地址。獲取音頻下載地址之后需要自己拼接url。

網(wǎng)頁數(shù)據(jù)不復(fù)雜,相對而言還是比較簡單的。
1、請求當前網(wǎng)頁數(shù)據(jù),獲取音頻地址以及音頻標題
2、保存下載就可以了

三、代碼實現(xiàn)

獲取音頻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)

保存數(shù)據(jù)

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參數(shù),不然會下載不了。代碼會一直運行,但是沒有反應(yīng)

多線程爬取

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批量爬取音頻素材網(wǎng)站
找不到合適的音頻素材?Python批量爬取音頻素材網(wǎng)站

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多