最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何基于Python爬取隱秘的角落評論

 更新時間:2020年07月02日 09:05:00   作者:永恒君  
這篇文章主要介紹了如何基于Python爬取隱秘的角落評論,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

“一起去爬山吧?”

這句臺詞火爆了整個朋友圈,沒錯,就是來自最近熱門的《隱秘的角落》,豆瓣評分8.9分,好評不斷。

感覺還是蠻不錯的。同時,為了想更進一步了解一下小伙伴觀劇的情況,永恒君抓取了愛奇藝平臺評論數(shù)據(jù)并進行了分析。下面來做個分享,給大伙參考參考。

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

因為該劇是在愛奇藝平臺獨播的,自然數(shù)據(jù)源從這里取比較合適。永恒君爬取了《隱秘的角落》12集的從開播日6月16日-6月26日的評論數(shù)據(jù)。

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

其中關(guān)鍵的就是last_id這個參數(shù),是用來控制評論分頁的,需要通過上一個頁面最后一條評論的id來進行獲取。

爬蟲部分代碼

def get_comment_html(movieId, movieName, lastId):#將獲取評論的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 為拼接好的評論地址  

  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")
    #將獲取的評論json源碼保存到txt文件,一次寫入一行,表示獲取的這一頁的評論      
  else:
    print("request error")
  print("爬取第{}頁評論".format(file_lines(filename)))
  time.sleep(0.5)  
  last_id = parseData(response.text) #解析并獲取下一個id  
  if last_id != "End":
    get_comment_html(movieId, movieName, parseData(response.text))
  else:
    print("已到結(jié)尾")
    #continue#結(jié)束整個程序
  return None

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

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

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

1)評論用戶性別方面

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

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

接下來,我們再來看一下,每一期的評論數(shù)量,看是否能夠得出一些不一樣的數(shù)據(jù)。

from pyecharts.charts import Bar ##導入需要使用的圖表
from pyecharts import options as opts ##導入配置項

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('評論數(shù)',y_line3) ##y的值和y的一些數(shù)據(jù)配置項
   .set_global_opts(title_opts=opts.TitleOpts(title='《隱秘的角落》1-12集評論數(shù)量'))
  
   )
                                    
bar1.render("bar3.html") ###輸出html文件

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

3)開播十天之內(nèi)的評論數(shù)量走勢

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

from pyecharts.charts import Line ##導入需要使用的圖表
from pyecharts import options as opts ##導入配置項

comment_num = df["留言時間"].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('《隱秘的角落》開播10天內(nèi)評論走勢'), 
           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")

可以看到,從6月16日開播后,評論數(shù)量一路走高在6月25日達到了一個階段的高點。

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

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

from pyecharts.charts import Bar ##導入需要使用的圖表
from pyecharts import options as opts ##導入配置項

comment_num2 = df["留言時間"].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('評論數(shù)',y_line2) ##y的值和y的一些數(shù)據(jù)配置項
   .set_global_opts(title_opts=opts.TitleOpts(title='《隱秘的角落》0-23時評論數(shù)量'))
  
   )
                                    
bar1.render("bar2.html") ###輸出html文件

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

這是否也是你看劇的時間段呢?

5)評論的字數(shù)情況

永恒君一般看劇基本都不寫評論的或者也是簡單幾個字,但是在這里,我特地看了一下評論字數(shù)的分布,

def comment_word_group(strings): #評論字數(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 length

df["留言數(shù)量組別"] = df["留言內(nèi)容"].apply(lambda x:comment_word_group(x))#評論字數(shù)分組

lengthData = df.groupby(['留言數(shù)量組別'])["留言內(nèi)容"].count()#評論字數(shù)分組統(tǒng)計

from pyecharts.charts import Bar ##導入需要使用的圖表
from pyecharts import options as opts ##導入配置項

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('評論數(shù)量',v1) ##y的值和y的一些數(shù)據(jù)配置項
   .set_global_opts(title_opts=opts.TitleOpts(title='《隱秘的角落》評論字數(shù)分布'))  
   )                                    
bar1.render("bar.html") ###輸出html文件

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

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

最后,永恒君將通過wordcloud庫制作詞云來看看,大家對該劇的整體評價,以及該劇的核心關(guān)鍵詞。

#詞云
from PIL import Image
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS
import jieba
import matplotlib.pyplot as plt
import numpy as np

contents = df["留言內(nèi)容"].str.cat(sep=" ")
contents

sw = set(STOPWORDS)
sw.add("這個")
sw.add("什么")

cut_text2 = " ".join(jieba.lcut(contents))

background_image = np.array(Image.open("bg.png"))

wc = WordCloud(font_path=r'C:\Windows\Fonts\simhei.ttf',
        background_color='White',
        max_words=3000,
        width=1000,
        height=500,
        scale=1,
        stopwords=sw,#停用詞
        mask = background_image
        )
#font_path:設置字體,max_words:出現(xiàn)的最多詞數(shù)量,mask參數(shù)=圖片背景,必須要寫上,另外有mask參數(shù)再設定寬高是無效的
wc.generate(cut_text2)
wc.to_file("a2.jpg")


#將圖繪制出來
plt.imshow(wc)
plt.axis("off") 
plt.show() 

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

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

如果你現(xiàn)在還沒有來得及看,建議抽個時間去看看吧~~~

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 實現(xiàn)超級瑪麗游戲

    python 實現(xiàn)超級瑪麗游戲

    這篇文章主要介紹了python 實現(xiàn)超級瑪麗游戲,幫助大家更好的理解和使用python開發(fā)游戲,感興趣的朋友可以了解下
    2020-11-11
  • python3代碼輸出嵌套式對象實例詳解

    python3代碼輸出嵌套式對象實例詳解

    在本篇文章里小編給大家整理了關(guān)于python3代碼輸出嵌套式對象實例詳解內(nèi)容,有興趣的朋友們可以學習下。
    2020-12-12
  • odoo?為可編輯列表視圖字段搜索添加查詢過濾條件的詳細過程

    odoo?為可編輯列表視圖字段搜索添加查詢過濾條件的詳細過程

    Odoo 是基于 Python 寫的一系列開源商業(yè)應用程序套裝,前身是 OpenERP,這篇文章主要介紹了odoo?為可編輯列表視圖字段搜索添加查詢過濾條件,需要的朋友可以參考下
    2023-02-02
  • python網(wǎng)絡編程學習筆記(五):socket的一些補充

    python網(wǎng)絡編程學習筆記(五):socket的一些補充

    前面已經(jīng)為大家介紹了python socket的一些相關(guān)知識,這里為大家補充下,方便需要的朋友
    2014-06-06
  • PyQt5每天必學之切換按鈕

    PyQt5每天必學之切換按鈕

    這篇文章主要為大家詳細介紹了PyQt5每天必學之切換按鈕的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 手把手教你利用opencv實現(xiàn)人臉識別功能(附源碼+文檔)

    手把手教你利用opencv實現(xiàn)人臉識別功能(附源碼+文檔)

    最近搞一個人臉識別的項目練練手,不得不感嘆opencv做人臉檢測實在是強,這篇文章主要給大家介紹了關(guān)于利用opencv實現(xiàn)人臉識別功能的相關(guān)資料,并附上了源碼以及文檔,需要的朋友可以參考下
    2021-09-09
  • python的類方法和靜態(tài)方法

    python的類方法和靜態(tài)方法

    這篇文章主要介紹了python的類方法和靜態(tài)方法,以實例形式分析了Python中類方法和靜態(tài)方法的實現(xiàn)技巧與應用方法,需要的朋友可以參考下
    2014-12-12
  • python編程開發(fā)之textwrap文本樣式處理技巧

    python編程開發(fā)之textwrap文本樣式處理技巧

    這篇文章主要介紹了python編程開發(fā)之textwrap文本樣式處理技巧,實例分析了Python中textwrap的常用方法與處理文本樣式的相關(guān)使用技巧,需要的朋友可以參考下
    2015-11-11
  • python 對字典按照value進行排序的方法

    python 對字典按照value進行排序的方法

    這篇文章主要介紹了python 對字典按照value進行排序的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 用python實現(xiàn)五子棋實例

    用python實現(xiàn)五子棋實例

    這篇文章主要為大家詳細介紹了用python實現(xiàn)五子棋實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論

饶平县| 梅河口市| 新竹县| 壤塘县| 灵武市| 大关县| 长岛县| 镇巴县| 饶平县| 嘉义县| 乌审旗| 邯郸市| 宁明县| 汝南县| 抚顺县| 汝阳县| 长葛市| 高安市| 巨野县| 贡觉县| 大安市| 枞阳县| 驻马店市| 延吉市| 利川市| 嵊州市| 福鼎市| 大名县| 正宁县| 繁峙县| 阿荣旗| 屏山县| 湖南省| 桂东县| 崇明县| 德阳市| 江口县| 高要市| 和田县| 谷城县| 禹城市|