新四季網

抖音上超好聽的神曲音樂,Python教你一次性下載

2023-04-08 20:09:11

不知道什麼時候開始,中國出現了南抖音、北快手的互文格局(東市買駿馬,西市買鞍韉…)。剛才提到了,之前比較喜歡刷抖音,對於我這種佛系程序猿,看網上這些整容妹子基本一個樣。喜歡抖音主要是兩個初衷,學做菜聽音樂。朋友之前常說,人家抖音看妹子看的樂呵呵,你看人家做菜也能津津有味,一個人在那兒傻笑…民以食為天,我看到色香味俱全的菜,做的那麼好吃的樂呵樂呵還不行麼。

抖音捧紅了很多人,也讓很多本不怎麼讓大家熟知的歌曲、BGM,經過翻唱、混剪與視頻搭配,從而傳播大街小巷。什麼「若不是你,突然闖進我心裡…」亦或者「也許未來遙遠在光年之外,我願守候未知裡為你等待…」,成了大家閒時在嘴邊哼唱的調調。那麼,有沒有想過將這些好聽的剪輯批量下載下來呢?

Python 連結抖音

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

哎喲吼,居然看到了昨天爬蟲的「喬奶奶」…當然今天的重點不是視頻,而是下載它全站所有的音樂!

爬蟲實現分析

大家先開看看這個抖音熱歌榜歌曲,每頁20首歌曲,一個55頁。但細不細心大家都能發現,很多歌曲存在重複的問題。所以,等下爬蟲的時候,我們需要先準備一個music_list,用來識別這首歌曲是否已經下載過了…

網頁比較簡單,一個div中包裹了一個ul>li*20,我們是不是該這樣獲取:

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

通過使用attr的屬性進行快速解析,那麼最快速的獲取方式是:

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

我們只需要獲取所有的a標籤,切這些標籤中包含onclick這個屬性即可。

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

index = "open1('夜','#39;,'')"

index[5:]

"('夜','#39;,'')"

index_tuple = eval(index[5:])

print(index_tuple, type(index_tuple))

('夜', '#39;, '')

index_tuple[0]

'夜'

index_tuple[1]

'#39;

ps:今天一個朋友說我寫代碼沒注釋,我這是現身說法的告訴你,如何能寫出讓別人壓根看不懂的代碼抖音上好聽的歌曲,就是不寫注釋啊,哈哈!其實,代碼我都在文章中一點一點的講解了,所以沒有寫,但秉承著害怕大佬們取關的心態,我還是把注釋加上吧…

代碼實現

總體來說實現比較簡單,全部代碼如下:

import os

import requests

from bs4 import BeautifulSoup

import threading

import time

class DouYinMusic:

def __init__(self):

self.music_list = []

self.path = self.download_path

@staticmethod

def download_path:

"""

獲取代碼執行目錄,並在目錄下創建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方法

如果為網頁請求,返回網頁內容

否則,解析音樂地址,並返回音樂二進位文件

:param url: 請求url(分網頁、音樂兩類)

:return: 網頁內容 & 音樂二進位文件

"""

r = requests.get(url, timeout=5)

if url.endswith('html'):

return r.text

else:

return r.content

def analysis_html(self, html):

"""

根據獲取的網頁內容,解析音樂名稱、下載地址

調用音樂下載方法

:param html: 網頁內容

"""

soup = BeautifulSoup(html, 'lxml')

# 根據關鍵字onclick查找每個下載地址

for tag_a in soup.findAll('a', attrs={'onclick': True}):

# 下載格式'("name","link","")',通過eval將str轉化為tuple類型

link_list = eval(tag_a['onclick'][5:])

music_name, music_link = link_list[:2]

# 因為存在部分重複音樂,故設置判斷下載過的音樂跳過

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):

同类文章

快手嘟嘟為什麼那麼火,快手嘟嘟姐為什麼消失了

   Aauto快嘟嘟的姐姐是怎麼火起來的?前段時間,Tik Tok萬文引爆了一段時間的新鮮女孩熱潮,但現在它似乎已經席捲了一個替代熱潮。因為一個一夜之間嘴巴變紅的嘟嘟,再一次炸了大家的三觀。短短幾天,粉絲數量飆升至百萬,剛開始直播,又和Aauto快一些連線的老人們都陸續加入進來。那麼,她是怎麼生氣
 帶著玩具逛街是什麼感覺,需要做哪些準備

帶著玩具逛街是什麼感覺,需要做哪些準備

關於「逛街狂」媽媽來說,有了寶寶,真的就不能「想逛就逛」了嗎?其實只要寶媽提早備好這6個「配備」,照樣能夠「逛得爽爽」噠!一、備齊配備大容量的包包出門前,寶媽要預備一個大容量的包包,把寶寶所需要的東西都裝進去,比如紙尿褲、奶粉、奶瓶,水瓶、小零食、一兩個小玩具,以及簡單替換的幾件寶寶衣服。牽娃繩若寶
 蝴蝶哭泣圖片唯美,蝴蝶飛不過滄海

蝴蝶哭泣圖片唯美,蝴蝶飛不過滄海

1. 我認為蝴蝶飛不過滄海,是認為蝴蝶沒有飛過滄海的勇氣,十年今後我才發現,不是蝴蝶飛不過去,而是滄海的那一頭,早已沒有了等待……2. 日子到底對咱們做了什麼,不敢再測驗,不敢再用力愛,不敢再探究,你認為那是老練,我認為那叫死了。3. 這世上有許多工作是你無能為力的,好端端的身體忽然就生了重病,深信
 睪丸綁了一星期掉了,懷疑老公有外遇,妻子割去其睪丸

睪丸綁了一星期掉了,懷疑老公有外遇,妻子割去其睪丸

懷疑老公彭東(化名)有外遇,妻子阿蘭(化名)騙老公服下安眠藥後,將彭東綁在席夢思上,割掉了他的一對睪丸。     過後,彭東寫了一份申請書交給法院,表明自己現已寬恕了阿蘭,期望法院從輕宣判。昨日,株洲市荷塘區人民法院對這起案件作出一審宣判,以故意傷害罪判處被告人阿蘭有期徒刑十一年,剝奪政治權利一年。
 用嘴巴逮蝴蝶的圖片,蝴蝶排調味是一等的關鍵

用嘴巴逮蝴蝶的圖片,蝴蝶排調味是一等的關鍵

蝴蝶排,坐落肩膀以下,分居後背兩側呈對稱分布的兩塊肩胛骨,因形如蝴蝶而得名。羊蝴蝶排是羊身上的嫩排,肥瘦相間、肉質鮮嫩。無論是白叟仍是小朋友,吃起來都毫無壓力。做羊肉,想要突出它的鮮美,去掉羶腥氣,調味是一等的關鍵。清代的袁牧曾在《隨園食單》中寫道:「味太濃重者,只宜獨用,不行調配。……牛羊也,皆宜
 皇帝的第一次是誰教的?第一次一般由皇帝妃子教導

皇帝的第一次是誰教的?第一次一般由皇帝妃子教導

皇子第一次由皇帝妃子教導皇子由於位置崇高,身邊又多是鶯鶯燕燕,因而許多皇子第一次其實都是被宮女挑逗就給了出去,例如西晉皇帝司馬衷在13歲成為國王之前就成家了,北魏文成皇帝也在13歲時就和宮女發生關係,14歲就有了自己的孩子。許多皇帝的第一次都是和宮女發生的。此外還有一種方法,就是老皇帝讓自己的妃嬪去
 怎樣能測出女人的出軌,這幾個方法可以判斷

怎樣能測出女人的出軌,這幾個方法可以判斷

 判斷女性是否出軌的5個方法有有意圖的裝扮、對立逐漸增多、沒有眼淚、不再囉嗦、冷酷的性生活。1、有意圖的裝扮當一個女性出軌後,對於沉浸在愛情剛開端的浪漫中,女性一般會很留意自己的形象的。也便是說,出軌時的女性是最美麗的。她們很留意自己的造型,會把自己裝扮得比平時愈加嫵媚,愈加美麗。會開端買新衣服,會
 蝴蝶讓帶著出門,陪小鮮肉一同健身、吃飯乃至是遊泳

蝴蝶讓帶著出門,陪小鮮肉一同健身、吃飯乃至是遊泳

美國小鮮肉安德烈亞斯(Andreas Alfaro)日前發生了一件奇妙的事,有天他一如往常地趕著出門,出門時發現地上躺著一隻奄奄一息的蝴蝶,起初以為它是被樓梯困住,於便將它救起放在肩上,心想等等出門它會自己飛走。但沒想到,它不光沒有飛走,還陪小鮮肉一同健身、吃飯乃至是遊泳。據外媒報導,安德烈亞斯目前
 女人出過軌怎麼樣挽回老公的心,解決辦法解析

女人出過軌怎麼樣挽回老公的心,解決辦法解析

女性出軌後悔了怎麼拯救老公的心?世界上沒有一個男人會忍受得了自己的妻子背著自己出去找男人,或許自己愛著的女性心中竟然還愛著別的男人,這種日子出軌和精神出軌都是犯了男人的大忌。一旦女性出軌了,男人還能接受她的話,那只能說明那個男人真的很愛她,又或許是根據家庭、孩子的原因而不想婚姻因而決裂。那麼,作為從
 蝴蝶和一隻手的圖片,哪個畫面最經典?

蝴蝶和一隻手的圖片,哪個畫面最經典?

古裝劇我們應該都看過,裡邊常常會有女性角色和蝴蝶在一起的時刻。我知道我們最早想到的應該就是那個最經典的,我們今天不說她,一同來看一下其他劇裡邊的場景吧。看看這些裡邊有沒有你看過的呢?  甄嬛    這個劇我們應該都看過,也知道她為什麼要用蝴蝶,這個應該是她的心思第一次改變的時分。從這個時分開始她就不