Python 爬取张国荣最火的 8 首歌,60000 评论看完泪奔!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://csdnnews.blog.csdn.net/article/details/88968350

640?wx_fmt=gif

640?wx_fmt=jpeg

今天是4月1日。

每年的这一天,

一部分人搜索枯肠想尽办法整蛊,

一部分人感怀四月该很好,倘若你还在。

甚至有人,用AI的方式来还原你。

但那终究不是你啊。

640?wx_fmt=gif图源见水印

你走了16年了,那些当年在课桌前趁老师不注意偷偷听你歌的少年们,或许早已为人夫为人妇。

即便如此,每年却有很多人在这人间四月天里,借着你给世界留下的不绝回音,去思念你、去给你留言,即便明明知道,永远也不会收到回复。

640?wx_fmt=gif

今天,CSDN选择以科技的方式,来纪念哥哥。

我们爬取了你在网易云音乐上,评论最多的八首歌曲。

它们依次是:《沉默是金》《春夏秋冬》《倩女幽魂》《当爱已成往事》《我》《风继续吹》《玻璃之情》《风再起时》。

总共64540条的评论中,出现最多的是“生日快乐”、“哥哥”、“加油”、“你若尚在场”、“新年快乐”和“哥哥,生日快乐”。

640?wx_fmt=png

词云图里很少有“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('[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)

 

640?wx_fmt=png

《沉默是金》

是错永不对 真永是真

任你怎说安守我本份

始终相信 沉默是金

 

这首歌是你亲自谱曲的。

当时,“谭张争霸”(1986-1989年,谭咏麟和张国荣为争夺乐坛地位,而在音乐上展开了全面竞争角逐)已经进入白热化。

你讨厌争来争去,于是借歌明志,推出了《沉默是金》。

你说,“任你怎说安守我本份,始终相信,沉默是金。”

清者自清,你的沉默,愈加彰显纯真本色。

 

640?wx_fmt=png

《春夏秋冬》

秋天该很好 你若尚在场

秋风即使带凉 亦漂亮

深秋中的你填密我梦想

就像落叶飞 轻敲我窗

 

每到你生日时、每到新年时、每到你离开世界的那天时,你的歌下面就会有大量评论涌来。

你是4月1日走的,但是喜欢你的人,总是3月30日、31日甚至更早,就来你的音乐下面评论。

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

你眼神中的澄澈和犹豫,事隔经年,还是那么让人无法忘记。

640?wx_fmt=other

图源自网络

 

640?wx_fmt=png

《倩女幽魂》

红尘里 美梦有几多方向

找痴痴梦幻中心爱

路随人茫茫

 

640?wx_fmt=gif

《倩女幽魂》里,你是羞涩怯弱的书生,走夜路时要点三盏灯笼,但却为了担心阳光把小倩的魂魄照散,死死地用肩膀扛着门板。

小倩走了,宁采臣的心也跟着死了。

哥哥走了,别人再演宁采臣,总感觉除却巫山不是云。

 

640?wx_fmt=png

《当爱已成往事》

为何你不懂

只要有爱就有痛

有一天你会知道

人生没有我并不会不同

 

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

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

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

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

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

 

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

 

640?wx_fmt=png

《我》

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

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

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

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

 

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

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

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

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

640?wx_fmt=jpeg

图源自网络

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

 

640?wx_fmt=png

《风继续吹》

风继续吹不忍远离

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

过去多少快乐记忆

何妨与你一起去追

 

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

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

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

640?wx_fmt=png

 

 

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

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

 

640?wx_fmt=png

《玻璃之情》

 

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

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

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

 

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

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

 

640?wx_fmt=png

《风再起时》

我回头再往某年

像失色照片乍现眼前

这个茫然困惑少年

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

 

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

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

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

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

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

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

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

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

640?wx_fmt=gif

不知道现在的你,还唱歌吗?还演戏吗?

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

谢谢你,留给我们这么多歌曲和电影。

愿你在另外一个世界,永远没有忧郁和伤心。

以上。

作者:丁彦军,一名痴恋于Python的码农。

公众号:恋习Python,在这里我们一起用Python做些有意义的事。

Python这么火,为什么还不学?

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

【End】

640?wx_fmt=jpeg

 热 文 推 荐 

 程序员不过愚人节???

 5G 还未商用,6G 研究已开始?!

俄罗斯想要脱离全球互联网?

程序媛报告:调查了 12,000 名女性开发者发现,女性比男性更懂 Java!

☞ 姚期智提出的"百万富翁"难题被破解? 多方安全计算MPC到底是个什么鬼?

深度 | 人工智能究竟能否实现?

☞ 全民 AI !教育部宣布 35 所高校新增 AI 本科专业

趣挨踢 | 用大数据扒一扒蔡徐坤的真假流量粉


 

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

展开阅读全文

泪奔求解

04-01

昨天看了别人想,使图片显示自适应屏幕大小。我就试了获得屏幕的宽高,通过代码,相对的计算各个控件的 宽高。rnrn还没写出来,到这一步,运行。 发现 图片下方显示的文本,是执行的。 可是为什么会不显示呢?rnrnrn我试着用宽度填充, 图片是随着屏幕尺寸不同而填充的,不过图片太小,容易画面失真。 为什么有人说不填充呢? 纵向rnrn填充,为什么上下,估计有个差不多一个编辑框大小的高度。 rnrnrn想知道,原因,是我XML布局设计出错了吗? rnrn[code=XML]rnrn rn rn rn rn[/code]rnrn[code=Java]package com.android.ImageView;rnrnimport android.app.Activity;rnimport android.os.Bundle;rnimport android.os.Handler;rnimport android.os.Message;rnimport android.util.DisplayMetrics;rnimport android.util.Log;rnimport android.widget.ImageView;rnimport android.widget.TextView;rnrnpublic class MainActivity extends Activity rnrn ImageView imageView;rn TextView textView;rn TextView m_TextView;rn int image_alpha=10000; //ImageView's alpha valuern private final static String TAG= "MainActivity";rn rn Handler mHandler = new Handler();rn boolean isrun=false;rn DisplayMetrics dm=new DisplayMetrics();rn rn @Overridern public void onCreate(Bundle savedInstanceState)rn rn super.onCreate(savedInstanceState);rn setContentView(R.layout.main);rn rn //取得窗口属性rn getWindowManager().getDefaultDisplay().getMetrics(dm); rn int screen_Width=dm.widthPixels;rn int screen_Height=dm.heightPixels; rn m_TextView=(TextView)findViewById(R.id.TextView02);rn m_TextView.setText("屏幕宽度:"+screen_Width+"\n"+"屏幕高度:"+screen_Height);rn rn isrun=true; rn imageView = (ImageView)findViewById(R.id.ImageView01);rn textView = (TextView)findViewById(R.id.TextView01);rn rn //set image sourcern imageView.setImageResource(R.drawable.iamge);rn imageView.setAlpha(image_alpha);rn rn new Thread(new Runnable()rn rn @Overridern public void run()rn rn while (isrun)rn rn tryrn rn Thread.sleep(100);rn updateAlpha();rn rn catch (Exception e)rn rn e.printStackTrace();rn rn rn rn rn ).start(); rn rn //接收消息之后,更新Alpha的值rn mHandler =new Handler()rn rn @Overridern public void handleMessage(Message msg)rn rn super.handleMessage(msg);rn imageView.setAlpha(image_alpha);rn Log.i(TAG,"alpha");rn textView.setText("The value of Alpha"+ Integer.toString(image_alpha));rn Log.i(TAG,"setText");rn //更新rn imageView.invalidate();rn Log.i(TAG,"invalidate alpha");rn rn ;rn rn rn rn public void updateAlpha()rn rn if (image_alpha-7>=0)rn rn image_alpha-=7;rn rn elsern rn image_alpha=0;rn isrun=false;rn rn //发送需要更新ImageView的消息rn mHandler.sendMessage(mHandler.obtainMessage());rn rnrn[/code] 论坛

正在转IOS开发,途中各种泪奔

08-24

以前对移动开发知之甚少,但公司前一段让我开发一个移动产品,没有基于某个特定平台开发,是基于一个中间件开发,客户端有中间件厂商提供,最终开发出了Android,和Iphone版。之后开发对移动开发感兴趣,决定转型做IOS开发,提一下,我之前主做C#,C++懂得不是很深,但也做过项目。rn 决定之后,看帖,看视频教程,买书,配置新电脑,装上黑苹果,装上Xcode,先练基础OC,之后界面设计。2个月过去了,配置环境大概用去了一半的学习时间。因为没让你知道,网上资源也不多,还得一一甄别,刚开始装的10.6.2,用了一段时间,更新了一次,结果系统崩溃。又找新的资源,现在Mac OS X 10.7,Xcode4.2,这系统有时候也老满,还经常死机没反应了。当初真应该狠点心,买个Mac Pro.rn 3个月,开始更新简历,投简历,面试。笔试可以过,但是技术面试,总被鄙视,毕竟自己没有真正项目经验,一问到很具体的实现,比如TableView具体怎么加载数据,我有点紧张的说不出话。因为当时我只知道有这么个控件,及实现的效果。rn 现在公司的项目很紧,自己也没了刚开始学习的尽头,真有点浅尝辄止的感觉,但是公司不但算做基于Iphone平台的项目,我自己学的怕是进步太慢。有些东西不能真正理解。rnrn 我该怎么办,又没有转过型的,成功找到工作的,比如Java转C++,跨度比较大的,求指导?rnrn我之前一个哥们就是,Java学的很好了,做J2EE,但是他哥是搞C++的,他一直很崇拜搞C++,刚毕业那会,没有找到C++的工作,心里就有这么个念想,自己也会去学习,大概工作了2年后,一次辞职后,决定转C++,面了一个月也没面上一个,之后又用一个月,干会老本行Java了,惨痛的教训啊。rn 论坛

泪奔求助:System.Runtime.InteropServices.COMException:命令失败

02-22

rn代码:(红色为出错地方)rn[code=C#]rnMicrosoft.Office.Interop.Word._Application oWord = null;rn Microsoft.Office.Interop.Word._Document oDoc;rn oWord = new Microsoft.Office.Interop.Word.Application();rn //oWord.Visible = true; rn object ReadOnly = true;rn oWord.ActivePrinter = "Microsoft Office Document Image Writer";rn oDoc = oWord.Documents.Open(ref tempFileName,rn ref oMissing, ref ReadOnly, ref oMissing, ref oMissing, ref oMissing,rn ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,rn ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);rn tryrn rn // if (!Directory.Exists(savePath.ToString()))rn // rn // Directory.CreateDirectory(savePath.ToString());rn // rn savePath = sPath;//+ strFileName + "." + astdt;rn object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;rn rn [color=#FF0000]oDoc.SaveAs(ref savePath, ref format,rn ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,rn ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,rn ref oMissing, ref oMissing, ref oMissing, ref oMissing);[/color]rnrnrn rnrnrn Microsoft.Office.Interop.Word.WdStatistic stat = Microsoft.Office.Interop.Word.WdStatistic.wdStatisticPages;rn pageNum = oDoc.ComputeStatistics(stat, ref oMissing);rn[/code]rnrn错误信息:rn[code=C#]rn捕捉到 System.Runtime.InteropServices.COMExceptionrn HelpLink="C:\\Program Files\\Microsoft Office\\Office12\\2052\\WDMAIN11.CHM#36966"rn Message="命令失败"rn Source="Microsoft Word"rn ErrorCode=-2146824090rn StackTrace:rn 在 Microsoft.Office.Interop.Word.DocumentClass.SaveAs(Object& FileName, Object& FileFormat, Object& LockComments, Object& Password, Object& AddToRecentFiles, Object& WritePassword, Object& ReadOnlyRecommended, Object& EmbedTrueTypeFonts, Object& SaveNativePictureFormat, Object& SaveFormsData, Object& SaveAsAOCELetter, Object& Encoding, Object& InsertLineBreaks, Object& AllowSubstitutions, Object& LineEnding, Object& AddBiDiMarks)rn 在 UploadSystem.Doc2Swf.ToPdf(String path, String sPath, String sImagesPath) 位置 E:\web\Wendang\UploadSystem\Convert.cs:行号 66rn InnerException: nullrn[/code]rnrnrnGG了2天 说COM权限问题,如是在能加权限的地方全加上了 例如组件服务的WORD启动和访问权限 还是报错 去年遇到过一次这样的错误,后来解决了,但是忘了怎么解决的,泪奔啊,我的天那,我一个地方载了2次了,请各位救救我吧,不然我投河了。rn 论坛

没有更多推荐了,返回首页