前言本文的文字及圖片來(lái)源于網(wǎng)絡(luò),僅供學(xué)習(xí)、交流使用,不具有任何商業(yè)用途,如有問(wèn)題請(qǐng)及時(shí)聯(lián)系我們以作處理。 Python爬蟲(chóng)、數(shù)據(jù)分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費(fèi)在線觀看 https://space.bilibili.com/523606542 
前文內(nèi)容Python爬蟲(chóng)新手入門(mén)教學(xué)(一):爬取豆瓣電影排行信息 Python爬蟲(chóng)新手入門(mén)教學(xué)(二):爬取小說(shuō) Python爬蟲(chóng)新手入門(mén)教學(xué)(三):爬取鏈家二手房數(shù)據(jù) Python爬蟲(chóng)新手入門(mén)教學(xué)(四):爬取前程無(wú)憂招聘信息 Python爬蟲(chóng)新手入門(mén)教學(xué)(五):爬取B站視頻彈幕 Python爬蟲(chóng)新手入門(mén)教學(xué)(六):制作詞云圖 Python爬蟲(chóng)新手入門(mén)教學(xué)(七):爬取騰訊視頻彈幕 Python爬蟲(chóng)新手入門(mén)教學(xué)(八):爬取論壇文章保存成PDF Python爬蟲(chóng)新手入門(mén)教學(xué)(九):多線程爬蟲(chóng)案例講解 Python爬蟲(chóng)新手入門(mén)教學(xué)(十):爬取彼岸4K超清壁紙 Python爬蟲(chóng)新手入門(mén)教學(xué)(十一):最近王者榮耀皮膚爬取 Python爬蟲(chóng)新手入門(mén)教學(xué)(十二):英雄聯(lián)盟最新皮膚爬取 Python爬蟲(chóng)新手入門(mén)教學(xué)(十三):爬取高質(zhì)量超清壁紙 Python爬蟲(chóng)新手入門(mén)教程(十四):爬取有聲小說(shuō)網(wǎng)站數(shù)據(jù) Python爬蟲(chóng)新手入門(mén)教學(xué)(十五):Python爬取某音樂(lè)網(wǎng)站的排行榜歌曲 基本開(kāi)發(fā)環(huán)境相關(guān)模塊的使用import osimport concurrent.futuresimport requestsimport parsel 安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。 一、確定需求 雖然上面顯示需要付費(fèi)下載,但是一樣可以免費(fèi)下載。
二、網(wǎng)頁(yè)數(shù)據(jù)分析打開(kāi)開(kāi)發(fā)者工具,點(diǎn)擊播放音頻,在Media中會(huì)加載出音頻的url地址。 如果想要驗(yàn)證這個(gè)鏈接是否是音頻的真實(shí)下載地址,可以復(fù)制鏈接粘貼到新的窗口中。
它會(huì)自動(dòng)下載一個(gè)音頻文件。并且這個(gè)音頻文件是可以播放的,和網(wǎng)頁(yè)上面的音頻聲音是可以對(duì)上的。 事實(shí)證明這個(gè)就是我們要獲取音頻地址。
https://downsc./Files/DownLoad/sound1/202102/s830.mp3 老思路了,復(fù)制鏈接中的某些參數(shù)在開(kāi)發(fā)者工具中進(jìn)行搜索,很明顯 s830 就是音頻的ID了。 搜索 s830 找到來(lái)源,發(fā)現(xiàn)網(wǎng)頁(yè)頁(yè)面中自帶有下載地址。獲取音頻下載地址之后需要自己拼接url。
網(wǎng)頁(yè)數(shù)據(jù)不復(fù)雜,相對(duì)而言還是比較簡(jiǎn)單的。 1、請(qǐng)求當(dāng)前網(wǎng)頁(yè)數(shù)據(jù),獲取音頻地址以及音頻標(biāo)題 2、保存下載就可以了 三、代碼實(shí)現(xiàn)獲取音頻ID以及音頻標(biāo)題 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)這里想要重新給一個(gè)headers參數(shù),不然會(huì)下載不了。代碼會(huì)一直運(yùn)行,但是沒(méi)有反應(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)
|