亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

如何用Python一次性下載抖音上音樂

瀏覽:13日期:2022-06-19 15:37:34
目錄Python 鏈接抖音爬蟲實(shí)現(xiàn)分析熱歌榜內(nèi)容網(wǎng)頁解析巧用eval代碼實(shí)現(xiàn)Python 鏈接抖音

python下載抖音內(nèi)容的帖子網(wǎng)上有一些,但都比較麻煩,需要通過adb連接安卓手機(jī)后,模擬操作。我這么懶,這種事兒玩不來…那么,該如何獲取抖音內(nèi)容呢?網(wǎng)上搜了下大概有兩種方式,一個(gè)是瀏覽器插件快抖,另外一個(gè)是我今天要說的抖音網(wǎng)頁版。其實(shí)這兩者差別不是很大,都是先將抖音內(nèi)容下載至服務(wù)器后,通過開發(fā)簡單網(wǎng)站配置域名后,讓大家訪問。讓我們來看看抖音網(wǎng)頁版:

如何用Python一次性下載抖音上音樂

爬蟲實(shí)現(xiàn)分析熱歌榜內(nèi)容

如何用Python一次性下載抖音上音樂

大家先開看看這個(gè)抖音熱歌榜歌曲,每頁20首歌曲,一個(gè)55頁。但細(xì)不細(xì)心大家都能發(fā)現(xiàn),很多歌曲存在重復(fù)的問題。所以,等下爬蟲的時(shí)候,我們需要先準(zhǔn)備一個(gè)music_list,用來識(shí)別這首歌曲是否已經(jīng)下載過了…

網(wǎng)頁解析

如何用Python一次性下載抖音上音樂

網(wǎng)頁比較簡單,一個(gè)div中包裹了一個(gè)ul>li*20,我們是不是該這樣獲?。?/p>

soup.find(’div’,{'class':'pull-left'}).find(’ul’).findAll(’a’)

如果你說是,那么一定沒有好好看我前天整理的文章通過哪吒豆瓣影評,帶你分析python爬蟲快速入門:https://www.jianshu.com/p/ae38f7607902,我在文章中專門提到了一個(gè)小技巧,通過使用attr的屬性進(jìn)行快速解析,那么最快速的獲取方式是:

soup.findAll(’a’, attrs={’onclick’: True})

我們只需要獲取所有的a標(biāo)簽,切這些標(biāo)簽中包含onclick這個(gè)屬性即可。

巧用eval

我們解析到的內(nèi)容通過attr[‘onclick’],可以得到他的屬性open1(‘夜’,’http://p9-dy.byteimg.com/obj/61a20007a98954b0831d),如何能快速獲取歌曲名字和url呢?這里我們需要用到一個(gè)eval的小技巧:

index = 'open1(’夜’,’http://p9-dy.byteimg.com/obj/61a20007a98954b0831d’,’’)'index[5:]'(’夜’,’http://p9-dy.byteimg.com/obj/61a20007a98954b0831d’,’’)'index_tuple = eval(index[5:])print(index_tuple, type(index_tuple))(’夜’, ’http://p9-dy.byteimg.com/obj/61a20007a98954b0831d’, ’’) <class ’tuple’>index_tuple[0]’夜’index_tuple[1]’http://p9-dy.byteimg.com/obj/61a20007a98954b0831d’

ps:今天一個(gè)朋友說我寫代碼沒注釋,我這是現(xiàn)身說法的告訴你,如何能寫出讓別人壓根看不懂的代碼,就是不寫注釋啊,哈哈!其實(shí),代碼我都在文章中一點(diǎn)一點(diǎn)的講解了,所以沒有寫,但秉承著害怕大佬們?nèi)£P(guān)的心態(tài),我還是把注釋加上吧…

代碼實(shí)現(xiàn)

總體來說實(shí)現(xiàn)比較簡單,全部代碼如下:

import osimport requestsfrom bs4 import BeautifulSoupimport threadingimport timeclass DouYinMusic: def __init__(self):self.music_list = []self.path = self.download_path() @staticmethod def download_path():'''獲取代碼執(zhí)行目錄,并在目錄下創(chuàng)建Music文件夾:return Music文件夾全路徑'''base_dir = os.path.dirname(os.path.abspath(__file__))_path = os.path.join(base_dir, 'Music')if not os.path.exists(_path): os.mkdir(_path)return _path def get_request(self, url):'''封裝requests.get方法如果為網(wǎng)頁請求,返回網(wǎng)頁內(nèi)容否則,解析音樂地址,并返回音樂二進(jìn)制文件:param url: 請求url(分網(wǎng)頁、音樂兩類):return: 網(wǎng)頁內(nèi)容 & 音樂二進(jìn)制文件'''r = requests.get(url, timeout=5)if url.endswith(’html’): return r.textelse: return r.content def analysis_html(self, html):'''根據(jù)獲取的網(wǎng)頁內(nèi)容,解析音樂名稱、下載地址調(diào)用音樂下載方法:param html: 網(wǎng)頁內(nèi)容'''soup = BeautifulSoup(html, ’lxml’)# 根據(jù)關(guān)鍵字onclick查找每個(gè)下載地址for tag_a in soup.findAll(’a’, attrs={’onclick’: True}): # 下載格式’('name','link','')’,通過eval將str轉(zhuǎn)化為tuple類型 link_list = eval(tag_a[’onclick’][5:]) music_name, music_link = link_list[:2] # 因?yàn)榇嬖诓糠种貜?fù)音樂,故設(shè)置判斷下載過的音樂跳過 if music_name in self.music_list:continue self.music_list.append(music_name) t = threading.Thread(target=self.download_music, args=(music_name, music_link)) time.sleep(0.5) t.start() def download_music(self, music_name, music_link):'''解析音樂文件,完成音樂下載:param music_name: 音樂名稱:param music_link: 下載地址'''_full_name = os.path.join(self.path, music_name)with open(_full_name + ’.mp3’, ’wb’) as f: f.write(self.get_request(music_link))print('抖音音樂:{} 下載完成'.format(music_name)) def run(self):'''主方法,用于批量生成url'''for page in range(1,55): url = 'http://douyin.bm8.com.cn/t_{}.html'.format(page) html = self.get_request(url) self.analysis_html(html)if __name__ == ’__main__’: main = DouYinMusic() main.run()

來讓我們看看效果吧:

如何用Python一次性下載抖音上音樂

網(wǎng)站是通過nginx負(fù)載均衡搭建的,有一些鏈接已經(jīng)失效了。最終下載了不重復(fù)的592首抖音音樂。

如何用Python一次性下載抖音上音樂

同樣的,大家喜歡可以按照這種方法,嘗試下載一下網(wǎng)站的抖音視頻。

以上就是如何用Python一次性下載抖音上音樂的詳細(xì)內(nèi)容,更多關(guān)于Python一次性下載抖音上音樂的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: 抖音 Python
相關(guān)文章:
主站蜘蛛池模板: 国产亚洲欧美日韩在线观看一区二区 | 欧美一级在线视频 | 香港毛片免费观看 | 久久精品中文字幕第一页 | 91短视频免费在线观看 | 在线啊v| 免费看精品黄线在线观看 | 黄色在线免费观看视频 | 中文字幕亚洲综合久久202 | 欧美一级毛片免费大片 | 99久久精品国产一区二区 | 久久精品免看国产成 | 国产欧美国产精品第一区 | 全免费a级毛片免费看视频免 | 亚洲国产一区二区三区a毛片 | 国产精品久久vr专区 | 综合在线视频精品专区 | 欧美一区二区手机在线观看视频 | 国产成 人 综合 亚洲网 | 网站大全黄免费 | 国产免费久久精品44 | 一级毛片一级毛片a毛片欧美 | 不卡一区二区在线观看 | 日韩欧美中文字幕一区 | 欧美一区二区三区在线观看不卡 | 国产v在线播放 | 一级特黄特色的免费大片视频 | 日韩免费高清一级毛片 | 精品日韩在线观看 | 手机看片日韩日韩 | 精品黄色录像 | 能可以直接看的av网址 | 久草在线观看福利 | 观看麻豆影视文化有限公司 | 婷婷丁香色综合狠狠色 | 欧美日本一道免费一区三区 | 在线观看扣喷水 | 久久久久久极精品久久久 | 中文字幕无线码中文字幕网站 | 综合网色| 免费a一级毛片在线播放 |