當前位置:
首頁 > 知識 > Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

作者 | 丁彥軍&胡巍巍

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

打開今日頭條,查看更多圖片

今天是4月1日。

每年的這一天,

一部分人搜索枯腸想盡辦法整蠱,

一部分人感懷四月該很好,倘若你還在。

甚至有人,用AI的方式來還原你。

但那終究不是你啊。

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

圖源見水印

你走了16年了,那些當年在課桌前趁老師不注意偷偷聽你歌的少年們,或許早已為人夫為人婦。

即便如此,每年卻有很多人在這人間四月天里,借著你給世界留下的不絕迴音,去思念你、去給你留言,即便明明知道,永遠也不會收到回復。

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

今天,CSDN選擇以科技的方式,來紀念哥哥。

我們爬取了你在網易雲音樂上,評論最多的八首歌曲。

它們依次是:《沉默是金》《春夏秋冬》《倩女幽魂》《當愛已成往事》《我》《風繼續吹》《玻璃之情》《風再起時》。

總共64540條的評論中,出現最多的是「生日快樂」、「哥哥」、「加油」、「你若尚在場」、「新年快樂」和「哥哥,生日快樂」。

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

詞雲圖裡很少有「4月1日」、「愚人節」的字眼,這並不是今天去給你評論的人少,而是今天這個日子,實在不適合對你說「快樂」。

來,先給大家看看評論的代碼。

# coding:utf-8
import json
import time
import requests
from fake_useragent import UserAgent
import random
import multiprocessing
import sys
#reload(sys)
#sys.setdefaultencoding("utf-8")
ua = UserAgent(verify_ssl=False)
song_list = [{"186453":"春夏秋冬"},{"188204":"沉默是金"},{"188175":"倩女幽魂"},{"188489":"風繼續吹"},{"187374":"我"},{"186760":"風雨起時"}]
headers = {
"Origin":"https://music.163.com",
"Referer": "https://music.163.com/song?id=26620756",
"Host": "music.163.com",
"User-Agent": ua.random
}
def get_comments(page,ite):
# 獲取評論信息
# """
for key, values in ite.items():
song_id = key
song_name = values
ip_list = [IP列表]
url = "http://music.163.com/api/v1/resource/comments/R_SO_4_"+ song_id +"?limit=20&offset=" + str(page)
proxies = get_random_ip(ip_list)
try:
response = requests.get(url=url, headers=headers,proxies=proxies)
except Exception as e:
print (page)
print (ite)
return 0
result = json.loads(response.text)
items = result["comments"]
for item in items:
# 用戶名
user_name = item["user"]["nickname"].replace(",", ",")
# 用戶ID
user_id = str(item["user"]["userId"])
print(user_id)
# 評論內容
comment = item["content"].strip().replace("
", "").replace(",", ",")
# 評論ID
comment_id = str(item["commentId"])
# 評論點贊數
praise = str(item["likedCount"])
# 評論時間
date = time.localtime(int(str(item["time"])[:10]))
date = time.strftime("%Y-%m-%d %H:%M:%S", date)

八首歌的歌詞代碼:

import requests
from bs4 import BeautifulSoup
import re
import json
import time
import random
import os
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3355.4 Safari/537.36",
"Referer": "http://music.163.com",
"Host": "music.163.com"
}
# 獲取頁面源碼
def GetHtml(url):
try:
res = requests.get(url=url, headers=headers)
except:
return None
return res.text
# 提取歌手歌詞信息
def GetSongsInfo(url):
print("[INFO]:Getting Songs Info...")
html = GetHtml(url)
soup = BeautifulSoup(html, "lxml")
links = soup.find("ul", class_="f-hide").find_all("a")
if len(links) < 1:
print("[Warning]:_GetSongsInfo <links> not find...")
Info = {"ID": [], "NAME": []}
for link in links:
SongID = link.get("href").split("=")[-1]
SongName = link.get_text()
Info["ID"].append(SongID)
Info["NAME"].append(SongName)
# print(Info)
return Info
def GetLyrics(SongID):
print("[INFO]:Getting %s lyric..." % SongID)
ApiUrl = "http://music.163.com/api/song/lyric?id={}&lv=1&kv=1&tv=-1".format(SongID)
html = GetHtml(ApiUrl)
html_json = json.loads(html)
temp = html_json["lrc"]["lyric"]
rule = re.compile(r"[.*]")
lyric = re.sub(rule, "", temp).strip()
print(lyric)
return lyric
def main():
SingerId = input("Enter the Singer ID:")
url = "http://music.163.com/artist?id={}".format(SingerId)
# url = "http://music.163.com/artist?id=6457"
Info = GetSongsInfo(url)
IDs = Info["ID"]
i = 0
for ID in IDs:
lyric = GetLyrics(ID)
SaveLyrics(Info["NAME"][i], lyric)
i += 1
time.sleep(random.random() * 3)
# print("[INFO]:All Done...")
def SaveLyrics(SongName, lyric):
print("[INFO]: Start to Save {}...".format(SongName))
if not os.path.isdir("./results"):
os.makedirs("./results")
with open("./results/{}.txt".format(SongName), "w", encoding="utf-8") as f:
f.write(lyric)

《沉默是金》

是錯永不對 真永是真

任你怎說安守我本份

始終相信 沉默是金

這首歌是你親自譜曲的。

當時,「譚張爭霸」(1986-1989年,譚詠麟和張國榮為爭奪樂壇地位,而在音樂上展開了全面競爭角逐)已經進入白熱化。

你討厭爭來爭去,於是借歌明志,推出了《沉默是金》。

你說,「任你怎說安守我本份,始終相信,沉默是金。」

清者自清,你的沉默,愈加彰顯純真本色。

《春夏秋冬》

秋天該很好 你若尚在場

秋風即使帶涼 亦漂亮

深秋中的你填密我夢想

就像落葉飛 輕敲我窗

每到你生日時、每到新年時、每到你離開世界的那天時,你的歌下面就會有大量評論湧來。

你是4月1日走的,但是喜歡你的人,總是3月30日、31日甚至更早,就來你的音樂下面評論。

多少人希望你復活,甚至有人在重慶看到一位和你眉眼很像的出租者司機,都忍不住拍下。

你眼神中的澄澈和猶豫,事隔經年,還是那麼讓人無法忘記。

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

圖源自網路

《倩女幽魂》

紅塵里 美夢有幾多方向

找痴痴夢幻中心愛

路隨人茫茫

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

《倩女幽魂》里,你是羞澀怯弱的書生,走夜路時要點三盞燈籠,但卻為了擔心陽光把小倩的魂魄照散,死死地用肩膀扛著門板。

小倩走了,寧采臣的心也跟著死了。

哥哥走了,別人再演寧采臣,總感覺除卻巫山不是雲。

《當愛已成往事》

為何你不懂

只要有愛就有痛

有一天你會知道

人生沒有我並不會不同

《霸王別姬》里,你演程蝶衣。

演得那麼嫵媚,以至於有人斷言你是童子功出身。

其實,你只不過是重病還堅持訓練而已。

你說「不瘋魔,不成活」,所以你知道段小樓娶妻後,會嫉妒會難過會發狂。

戲裡戲外,你都愛過,你說「只要有愛就有痛」,但卻更像是唱給自己聽。

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

你這樣的純粹和「認死理」,總是讓粉絲很心疼你......

《我》

孤獨的沙漠里 一樣盛放的赤裸裸

多麼高興 在琉璃屋中快樂生活

對世界說 甚麼是光明和磊落

我就是我 是顏色不一樣的煙火

多少人用你唱的那句「我就是我,是顏色不一樣的煙火」來鼓勵自己活出自我。

但最後你卻已煙火一樣的方式,離開了人世間。

幾年前,梁朝偉在紀念你的演唱會上,撥通你的電話。

電話里,留言聲依舊,「你好,我是leslie,有事請留言。」

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

圖源自網路

梁朝偉沉默了,許久之後,淡淡說句:「寶榮啊,不如我們從頭來過。」

《風繼續吹》

風繼續吹不忍遠離

心裡亦有淚不願流淚望著你

過去多少快樂記憶

何妨與你一起去追

這是你的成名曲,所以你似乎很中意它。

每每參加演唱會,都要唱一唱。

最後一次唱起時,不知怎的竟然哭了,台下觀眾也跟著你哭。

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

因為這首歌,是你翻身的見證啊。

你在歌壇摸爬滾打那麼多年,一直寂寂無聲,是這首歌才沒有讓你被埋沒。

《玻璃之情》

不信眼淚 能令失落的你愛下去

難收的覆水 將感情漫漫盪開去

如果你太累 及時地道別沒有罪

你曾說,每次唱歌前,都要給這首歌編一個故事,唱的時候,腦海中浮現出故事的畫面,而這種畫面感,讓你唱得很投入。

為什麼你的歌經久不息,就是因為你不僅對人重情,對歌也重情。

《風再起時》

我回頭再往某年

像失色照片乍現眼前

這個茫然困惑少年

願一生以歌 投入每天永不變

1989年,已經見過了娛樂圈太多浮沉的你,突然宣布告別樂壇。

你見過喧囂,但你卻不屬於喧囂。

策劃告別演唱會之前,你和音樂人陳少琪、黎小田商量。

陳少琪說,「你不是有一首成名曲叫《風繼續吹》么?不如歌名就叫《風再起時》,就是希望只要一起風的時候,歌迷就會想起你的這首歌。」

邊上的黎小田,花了十五分鐘就在隨手找來的白紙上,譜好了曲子。

很快,陳少琪也把詞填好了。

有人說,這首歌里的歌詞,就是為你量身定做的:「我回頭再往某年,像失色照片乍現眼前,這個茫然困惑少年,願一生以歌,投入每天永不變」。

願一生以歌,投入每天永不變......

Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

不知道現在的你,還唱歌嗎?還演戲嗎?

你知不知道,今天很多人都在想你。

謝謝你,留給我們這麼多歌曲和電影。

願你在另外一個世界,永遠沒有憂鬱和傷心。

以上。


作者:丁彥軍,一名痴戀於Python的碼農。

公眾號:戀習Python,在這裡我們一起用Python做些有意義的事。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

物聯網的未來不止於 5G!
找 Bug 賺了 6,700,000元!這位 00 後是怎麼做到的?

TAG:CSDN |