首頁 後端開發 Python教學 Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!

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

Apr 02, 2019 pm 02:19 PM
python



昨天是 4 月 1 日。

每年的這一天,

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

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

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

但那終究不是你。

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

圖片來源見水印

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

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

640 (1).gif

眼下,我們選擇以科技的方式,來紀念哥哥。

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

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

總共 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('\n', '').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(&#39;[Warning]:_GetSongsInfo <links> not find...&#39;)
    Info = {&#39;ID&#39;: [], &#39;NAME&#39;: []}
    for link in links:
        SongID = link.get(&#39;href&#39;).split(&#39;=&#39;)[-1]
        SongName = link.get_text()
        Info[&#39;ID&#39;].append(SongID)
        Info[&#39;NAME&#39;].append(SongName)
    # print(Info)
    return Info


def GetLyrics(SongID):
    print(&#39;[INFO]:Getting %s lyric...&#39; % SongID)
    ApiUrl = &#39;http://music.163.com/api/song/lyric?id={}&lv=1&kv=1&tv=-1&#39;.format(SongID)
    html = GetHtml(ApiUrl)
    html_json = json.loads(html)
    temp = html_json[&#39;lrc&#39;][&#39;lyric&#39;]
    rule = re.compile(r&#39;\[.*\]&#39;)
    lyric = re.sub(rule, &#39;&#39;, temp).strip()
    print(lyric)
    return lyric


def main():
    SingerId = input(&#39;Enter the Singer ID:&#39;)
    url = &#39;http://music.163.com/artist?id={}&#39;.format(SingerId)
    # url = "http://music.163.com/artist?id=6457"
    Info = GetSongsInfo(url)
    IDs = Info[&#39;ID&#39;]
    i = 0
    for ID in IDs:
        lyric = GetLyrics(ID)
        SaveLyrics(Info[&#39;NAME&#39;][i], lyric)
        i += 1
        time.sleep(random.random() * 3)
        # print(&#39;[INFO]:All Done...&#39;)


def SaveLyrics(SongName, lyric):
    print(&#39;[INFO]: Start to Save {}...&#39;.format(SongName))
    if not os.path.isdir(&#39;./results&#39;):
        os.makedirs(&#39;./results&#39;)
    with open(&#39;./results/{}.txt&#39;.format(SongName), &#39;w&#39;, encoding=&#39;utf-8&#39;) as f:
        f.write(lyric)
登入後複製

01

《沉默是金》

是錯永遠不會對真永是真

任你怎說安守我本份

#總是相信沉默是金


這首歌是你自己譜曲的。

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

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

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

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

02

《春夏秋冬》

秋天該很好你若尚在場

秋風即使帶涼亦漂亮

深秋中的你填密我夢想

就像落葉飛輕敲我窗


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

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

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

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

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

03

《倩女幽魂》

紅塵裡 美夢有幾多方向

找癡癡夢幻中心愛

路隨人茫茫

640 (2).gif

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

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

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

04


#《當愛已成往事》

為何你不懂

只要有愛就有痛

有一天你會知道

人生没有我并不会不同


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

演得那么妩媚,以至于有人断言你是童子功出身。

其实,你只不过是重病还坚持训练而已。

你说“不疯魔,不成活”,所以你知道段小楼娶妻后,会嫉妒会难过会发狂。

戏里戏外,你都爱过,你说“只要有爱就有痛”,但却更像是唱给自己听。

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

你这样的纯粹和“认死理”,总是让粉丝很心疼你......

05


《我》

孤独的沙漠里 一样盛放的赤裸裸

多么高兴 在琉璃屋中快乐生活

对世界说 甚么是光明和磊落

我就是我 是颜色不一样的烟火


多少人用你唱的那句“我就是我,是颜色不一样的烟火”来鼓励自己活出自我。

但最后你却已烟火一样的方式,离开了人世间。

几年前,梁朝伟在纪念你的演唱会上,拨通你的电话。

电话里,留言声依旧,“你好,我是leslie,有事请留言。”

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

梁朝伟沉默了,许久之后,淡淡说句:“宝荣啊,不如我们从头来过。”

06


《风继续吹》

风继续吹不忍远离

心里亦有泪不愿流泪望着你

过去多少快乐记忆

何妨与你一起去追


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

每每参加演唱会,都要唱一唱。

最后一次唱起时,不知怎的竟然哭了,台下观众也跟着你哭。

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

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

因为这首歌,是你翻身的见证啊。

你在歌坛摸爬滚打那么多年,一直寂寂无声,是这首歌才没有让你被埋没。

07


《玻璃之情》

不信眼泪 能令失落的你爱下去

难收的覆水 将感情漫漫荡开去

如果你太累 及时地道别没有罪


你曾说,每次唱歌前,都要给这首歌编一个故事,唱的时候,脑海中浮现出故事的画面,而这种画面感,让你唱得很投入。

为什么你的歌经久不息,就是因为你不仅对人重情,对歌也重情。

08

《风再起时》

我回头再往某年

像失色照片乍现眼前

这个茫然困惑少年

愿一生以歌 投入每天永不变


1989 年,已经见过了娱乐圈太多浮沉的你,突然宣布告别乐坛。

你见过喧嚣,但你却不属于喧嚣。

策划告别演唱会之前,你和音乐人陈少琪、黎小田商量。

陈少琪说,“你不是有一首成名曲叫《风继续吹》么?不如歌名就叫《风再起时》,就是希望只要一起风的时候,歌迷就会想起你的这首歌。”

边上的黎小田,花了十五分钟就在随手找来的白纸上,谱好了曲子。

很快,陈少琪也把词填好了。

有人说,这首歌里的歌词,就是为你量身定做的:“我回头再往某年,像失色照片乍现眼前,这个茫然困惑少年,愿一生以歌,投入每天永不变”。

愿一生以歌,投入每天永不变......

640 (3).gif


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

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

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

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

以上。

這篇文章到這裡就已經全部結束了,更多其他精彩內容大家可以關注PHP中文網的Python影片教學專欄! ! !

以上是Python 爬取張國榮最火的 8 首歌,60000 評論看完淚奔!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles