色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

如何基于Python爬取隱秘的角落評(píng)論

瀏覽:105日期:2022-07-19 08:16:10

“一起去爬山吧?”

這句臺(tái)詞火爆了整個(gè)朋友圈,沒(méi)錯(cuò),就是來(lái)自最近熱門(mén)的《隱秘的角落》,豆瓣評(píng)分8.9分,好評(píng)不斷。

如何基于Python爬取隱秘的角落評(píng)論

感覺(jué)還是蠻不錯(cuò)的。同時(shí),為了想更進(jìn)一步了解一下小伙伴觀劇的情況,永恒君抓取了愛(ài)奇藝平臺(tái)評(píng)論數(shù)據(jù)并進(jìn)行了分析。下面來(lái)做個(gè)分享,給大伙參考參考。

1、爬取評(píng)論數(shù)據(jù)

因?yàn)樵搫∈窃趷?ài)奇藝平臺(tái)獨(dú)播的,自然數(shù)據(jù)源從這里取比較合適。永恒君爬取了《隱秘的角落》12集的從開(kāi)播日6月16日-6月26日的評(píng)論數(shù)據(jù)。

使用 Chrome 查看源代碼模式,在播放頁(yè)面往下面滑動(dòng),有一個(gè) get_comments 的請(qǐng)求,經(jīng)過(guò)調(diào)試分析,這個(gè)接口就是獲取評(píng)論數(shù)據(jù)的接口,后面連接上一系列的參數(shù)即可獲取評(píng)論的數(shù)據(jù)。

如何基于Python爬取隱秘的角落評(píng)論

其中關(guān)鍵的就是last_id這個(gè)參數(shù),是用來(lái)控制評(píng)論分頁(yè)的,需要通過(guò)上一個(gè)頁(yè)面最后一條評(píng)論的id來(lái)進(jìn)行獲取。

爬蟲(chóng)部分代碼

def get_comment_html(movieId, movieName, lastId):#將獲取評(píng)論的json源碼,保存到txt文件中 url = 'http://sns-comment.iqiyi.com/v3/comment/get_comments.action?' params = { 'types':'time', 'business_type':'17', 'agent_type':'118', 'agent_version':'9.11.5', 'authcookie':'authcookie' } for item in params: url = url + item + '=' + params[item] + '&' url = url + 'content_id=' + movieId+ '&last_id=' + lastId #url 為拼接好的評(píng)論地址 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', 'Accept': 'application/json, text/javascript', 'Referer': 'https://www.iqiyi.com/v_19rxtiliso.html?vfm=2008_aldbd&fv=p_02_01', } response = requests.get(url, headers=headers) filename = movieId + movieName+'.txt' if response.status_code == 200:with open(filename,'a',encoding=’utf-8’) as f: f.write(response.text+'n') #將獲取的評(píng)論json源碼保存到txt文件,一次寫(xiě)入一行,表示獲取的這一頁(yè)的評(píng)論else: print('request error') print('爬取第{}頁(yè)評(píng)論'.format(file_lines(filename))) time.sleep(0.5) last_id = parseData(response.text) #解析并獲取下一個(gè)id if last_id != 'End': get_comment_html(movieId, movieName, parseData(response.text)) else: print('已到結(jié)尾') #continue#結(jié)束整個(gè)程序 return None

最終將12集爬取下來(lái)的包含評(píng)論數(shù)據(jù)的json源碼保存到txt文件當(dāng)中,解析提取評(píng)論的時(shí)間、用戶名、性別、評(píng)論內(nèi)容等信息,經(jīng)過(guò)去重、去空白等數(shù)據(jù)清理工作,最終獲得28010條評(píng)論信息。

如何基于Python爬取隱秘的角落評(píng)論

2、分析展示數(shù)據(jù)

在海量的數(shù)據(jù)中,我們可以分析出我們想看到的結(jié)果。為了更好的數(shù)據(jù)處理和可視化展示,這里永恒君用了Pandas和Pyecharts 這兩個(gè)庫(kù)。

1)評(píng)論用戶性別方面

女生占了大部分,占比60.89%,比男性用戶要多不少。

如何基于Python爬取隱秘的角落評(píng)論

2)每一集的評(píng)論數(shù)量

接下來(lái),我們?cè)賮?lái)看一下,每一期的評(píng)論數(shù)量,看是否能夠得出一些不一樣的數(shù)據(jù)。

from pyecharts.charts import Bar ##導(dǎo)入需要使用的圖表from pyecharts import options as opts ##導(dǎo)入配置項(xiàng)comment_num3 = df['集數(shù)'].value_counts().sort_index()x_line3 = comment_num3.index.to_list()y_line3 = comment_num3.values.tolist()bar1=( Bar(init_opts=opts.InitOpts(width=’800px’, height=’350px’)) ##定義為柱狀圖 .add_xaxis(x_line3) ##X軸的值 .add_yaxis(’評(píng)論數(shù)’,y_line3) ##y的值和y的一些數(shù)據(jù)配置項(xiàng) .set_global_opts(title_opts=opts.TitleOpts(title=’《隱秘的角落》1-12集評(píng)論數(shù)量’)) ) bar1.render('bar3.html') ###輸出html文件

如何基于Python爬取隱秘的角落評(píng)論

除了第一集的評(píng)論數(shù)特別多之外,可以看到,上半段的評(píng)論數(shù)明顯要比下半段的要多,是否意味著大家普遍覺(jué)得前期的要更好看一些?

如何基于Python爬取隱秘的角落評(píng)論

3)開(kāi)播十天之內(nèi)的評(píng)論數(shù)量走勢(shì)

接下來(lái)我們來(lái)看看從6月16日開(kāi)播之后,網(wǎng)友們對(duì)該劇的評(píng)論數(shù)量走勢(shì)情況。

from pyecharts.charts import Line ##導(dǎo)入需要使用的圖表from pyecharts import options as opts ##導(dǎo)入配置項(xiàng)comment_num = df['留言時(shí)間'].str.split(’ ’).str[0].value_counts().sort_index()x_line1 = [i.replace(’2020-’,’’) for i in comment_num.index.to_list()] y_line1 = comment_num.values.tolist()# 繪制面積圖line1 = Line(init_opts=opts.InitOpts(width=’1200px’, height=’600px’))line1.add_xaxis(x_line1)line1.add_yaxis(’’, y_line1,markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_=’max’, name=’最大值’), opts.MarkPointItem(type_=’min’, name=’最小值’)])) line1.set_global_opts(title_opts=opts.TitleOpts(’《隱秘的角落》開(kāi)播10天內(nèi)評(píng)論走勢(shì)’), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=’30’)), #visualmap_opts=opts.VisualMapOpts(max_=12673) ) line1.set_series_opts(label_opts=opts.LabelOpts(is_show=True), linestyle_opts=opts.LineStyleOpts(width=2))line1.render('Line.html')

如何基于Python爬取隱秘的角落評(píng)論

可以看到,從6月16日開(kāi)播后,評(píng)論數(shù)量一路走高在6月25日達(dá)到了一個(gè)階段的高點(diǎn)。

4)一天之中大家都在什么時(shí)間段看這部劇?

通過(guò)統(tǒng)計(jì)16日-26日每日0-23時(shí)的評(píng)論數(shù)量,來(lái)看看大家一般都在什么時(shí)候看劇

from pyecharts.charts import Bar ##導(dǎo)入需要使用的圖表from pyecharts import options as opts ##導(dǎo)入配置項(xiàng)comment_num2 = df['留言時(shí)間'].str.split(’ ’).str[1].str.split(':').str[0].value_counts().sort_index()x_line2 = comment_num2.index.to_list()y_line2 = comment_num2.values.tolist()bar1=( Bar(init_opts=opts.InitOpts(width=’800px’, height=’350px’)) ##定義為柱狀圖 .add_xaxis(x_line2) ##X軸的值 .add_yaxis(’評(píng)論數(shù)’,y_line2) ##y的值和y的一些數(shù)據(jù)配置項(xiàng) .set_global_opts(title_opts=opts.TitleOpts(title=’《隱秘的角落》0-23時(shí)評(píng)論數(shù)量’)) ) bar1.render('bar2.html') ###輸出html文件

如何基于Python爬取隱秘的角落評(píng)論

可以看到,晚上20點(diǎn)-23時(shí)為最集中看劇的時(shí)間段,其次中午12-14點(diǎn)也有一波小高峰,總體更多的人是下午看劇的人多。

這是否也是你看劇的時(shí)間段呢?

5)評(píng)論的字?jǐn)?shù)情況

永恒君一般看劇基本都不寫(xiě)評(píng)論的或者也是簡(jiǎn)單幾個(gè)字,但是在這里,我特地看了一下評(píng)論字?jǐn)?shù)的分布,

def comment_word_group(strings): #評(píng)論字?jǐn)?shù)分組函數(shù) if len(strings)<=10: length = 0 elif len(strings) > 10 and len(strings)<=30: length = 1 elif len(strings) >30 and len(strings) <=50: length = 2 else: length = 3 return lengthdf['留言數(shù)量組別'] = df['留言內(nèi)容'].apply(lambda x:comment_word_group(x))#評(píng)論字?jǐn)?shù)分組lengthData = df.groupby([’留言數(shù)量組別’])['留言內(nèi)容'].count()#評(píng)論字?jǐn)?shù)分組統(tǒng)計(jì)from pyecharts.charts import Bar ##導(dǎo)入需要使用的圖表from pyecharts import options as opts ##導(dǎo)入配置項(xiàng)attr = ['10字以內(nèi)','10~30字','30~50字','50字以上'] #X軸v1 = lengthData.values.tolist() #Y軸bar1=( Bar(init_opts=opts.InitOpts(width=’800px’, height=’350px’)) ##定義為柱狀圖 .add_xaxis(attr) ##X軸的值 .add_yaxis(’評(píng)論數(shù)量’,v1) ##y的值和y的一些數(shù)據(jù)配置項(xiàng) .set_global_opts(title_opts=opts.TitleOpts(title=’《隱秘的角落》評(píng)論字?jǐn)?shù)分布’)) ) bar1.render('bar.html') ###輸出html文件

如何基于Python爬取隱秘的角落評(píng)論

絕大部分的評(píng)論字?jǐn)?shù)都是在10個(gè)字以內(nèi),但也有約25%的評(píng)論字?jǐn)?shù)在10-30個(gè)之內(nèi),還是讓永恒君有點(diǎn)意外,是否說(shuō)明該劇火爆也是有原因的,激起了不少伙伴的共鳴。

6)評(píng)論核心關(guān)鍵詞

最后,永恒君將通過(guò)wordcloud庫(kù)制作詞云來(lái)看看,大家對(duì)該劇的整體評(píng)價(jià),以及該劇的核心關(guān)鍵詞。

#詞云from PIL import Imagefrom wordcloud import WordCloud,ImageColorGenerator,STOPWORDSimport jiebaimport matplotlib.pyplot as pltimport numpy as npcontents = df['留言內(nèi)容'].str.cat(sep=' ')contentssw = set(STOPWORDS)sw.add('這個(gè)')sw.add('什么')cut_text2 = ' '.join(jieba.lcut(contents))background_image = np.array(Image.open('bg.png'))wc = WordCloud(font_path=r’C:WindowsFontssimhei.ttf’,background_color=’White’,max_words=3000,width=1000,height=500,scale=1,stopwords=sw,#停用詞mask = background_image)#font_path:設(shè)置字體,max_words:出現(xiàn)的最多詞數(shù)量,mask參數(shù)=圖片背景,必須要寫(xiě)上,另外有mask參數(shù)再設(shè)定寬高是無(wú)效的wc.generate(cut_text2)wc.to_file('a2.jpg')#將圖繪制出來(lái)plt.imshow(wc)plt.axis('off') plt.show()

如何基于Python爬取隱秘的角落評(píng)論

可以看到,“朝陽(yáng)”、“嚴(yán)良”、“張東升”、“普普”、“好看”、“喜歡”、“小孩”、“原著”等關(guān)鍵詞都是大伙在熱議的。

不得不說(shuō),近年來(lái)如此火熱的、而且質(zhì)量不錯(cuò)的國(guó)產(chǎn)劇確實(shí)不多了。永恒君看前幾集的時(shí)候,突然又有大學(xué)時(shí)候看《越獄》的那個(gè)味道,看了一集就想看下一集,停不下來(lái)。

如果你現(xiàn)在還沒(méi)有來(lái)得及看,建議抽個(gè)時(shí)間去看看吧~~~

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 性欧美精品久久久久久久 | 久久亚洲精品tv | www.亚洲黄色 | 欧美大片在线观看成人 | 中文日韩字幕一区在线观看 | 免费高清欧美一区二区视频 | 狠久久| 88av视频| 亚洲成av人片在线观看无码 | 亚洲精品成人网久久久久久 | 国产精品日韩欧美一区二区 | 日本精品高清一区二区2021 | 日本免费小视频 | 综合中文字幕 | 黄色a∨| 456主播喷水在线观看 | 91香焦国产线观看看免费 | 欧美三级 欧美一级 | 国产成人午夜极速观看 | 94欧美setu | 精品videosex性欧美 | 真实一级一级一片免费视频 | 欧洲女同互慰在线视频 | 亚洲99爱| 国产一级一片免费播放i | 国产永久在线观看 | 日p免费视频 | 97视频免费公开成人福利 | 国产伦精品一区二区三区网站 | 久久这里只有精品免费播放 | 日本高清免费视频色www | 免费国产成人高清在线看软件 | 黄色成人免费观看 | 亚洲精品一区最新 | 国产成人a一在线观看 | 亚洲精品h | 免费观看a视频 | 欧美最爽乱淫视频播放黑人 | 国产美女高清一级a毛片 | 欧美日本色 | 毛片免费在线观看网址 |