どのようにPythonに基づいて秘密の隅の評論を登りますか?


一緒に山登りに行きませんか?
この台詞は友達の輪全体に人気があります。間違いなく、最近人気のある『秘密の隅』から来ました。豆瓣は8.9点を採点して、好評が絶えません。

いい感じです。同时に、もっと小さな仲间がドラマを见る情况を知るために、永恒くんはアイバートのコメントデータをつかみ、分析しました。以下は共有して、参考にしてください。
1、コメントデータを取得する
このドラマはアイジ芸のプラットフォームで単独放送したので、自然データ源はここから取ったほうがいいです。「秘密の片隅」12話の放送開始日から6月16日~6月26日までのコメントを取得した。
Chromeを使ってソースコードモードを確認し、再生ページを下にスライドさせると、get_があります。commentsの要求は、デバッグ分析を経て、このインターフェースはレビューデータを取得するインターフェースであり、後に一連のパラメータを接続して、コメントデータを取得することができます。

その中で重要なのはラストです。IDというパラメータは、レビューページを制御するために使用されており、前のページの最後のコメントの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+"
") # 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(" ") #continue# return None
最終的には、コメントデータを含むjsonのソースコードを12話のダウンロードをtxtファイルに保存し、コメントの時間、ユーザー名、性別、コメントの内容などの情報を解析し、再読み込み、空白などのデータ整理を経て、最終的に28010件のコメント情報を取得しました。

2、展示データを分析する
海の量のデータでは、私たちが見たい結果を分析することができます。より良いデータ処理と可視化展示のために、ここでは永恒くんはPandsとPyechartsの2つのライブラリを使いました。
1)ユーザーの性別についてコメントする
女子学生は大部分を占めて、60.89%を占めて、男性のユーザーより多いです。

2)毎回のコメント数
続いて、私達は更に見にきて、毎号の評論の数量、いくつかの異なっているデータを得ることができるかどうかを見ます。

from pyecharts.charts import Bar ##         
from pyecharts import options as opts ##     

comment_num3 = df["  "].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('   ',y_line3) ##y   y        
   .set_global_opts(title_opts=opts.TitleOpts(title='《     》1-12     '))
  
   )
                                    
bar1.render("bar3.html") ###  html  

第1話の評論数が特に多い以外に、上半分の評論数は明らかに下半分より多くなります。

3)スタート10日間のコメント数の推移
6月16日からスタートしたドラマに対するネットユーザーのコメントの流れを見てみましょう。

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      '), 
           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日からスタートした後、コメントの数が一気に高くなり、6月25日には1つの段階の最高値に達したと見られます。
4)一日の中で、みんなはいつこのドラマを見ますか?
16日~26日の1日0-23時のコメント数を集計してみます。皆さんはいつドラマを見ますか?

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('   ',y_line2) ##y   y        
   .set_global_opts(title_opts=opts.TitleOpts(title='《     》0-23     '))
  
   )
                                    
bar1.render("bar2.html") ###  html  

見ることができます。夜20時から23時までは一番集中的にドラマを見る時間帯です。次の昼12時から14時までは一つのピークがあります。全体的に多くの人が午後にドラマを見る人が多いです。
これもあなたがドラマを見る時間帯ですか?
5)コメントの文字数
永恒さんは普通ドラマを見てもコメントを書かないし、簡単な字も書いていますが、ここでコメントの字数の分布を見てみました。

def comment_word_group(strings): #        
  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["      "] = df["    "].apply(lambda x:comment_word_group(x))#      

lengthData = df.groupby(['      '])["    "].count()#        

from pyecharts.charts import Bar ##         
from pyecharts import options as opts ##     

attr = ["10   ","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('    ',v1) ##y   y        
   .set_global_opts(title_opts=opts.TitleOpts(title='《     》      '))  
   )                                    
bar1.render("bar.html") ###  html  

ほとんどのコメントの字数は10文字以内ですが、約25%のコメントもあります。字数は10~30文字以内ということもあります。やはり永久不変君は意外です。このドラマのヒットの原因を説明してくれるかどうかは、多くの仲間の共感を呼んでいます。
6)コメントの核心キーワード
最後に、永恒くんはワードクロードで作詞雲を作ってみます。全体的な評価と同ドラマのキーワードです。

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

contents = df["    "].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:        ,mask  =    ,     ,   mask           
wc.generate(cut_text2)
wc.to_file("a2.jpg")


#      
plt.imshow(wc)
plt.axis("off") 
plt.show() 

「朝陽」「厳良」「張東昇」「普普」「綺麗」「好き」「子供」「原典」といったキーワードが話題になっています。
近年このように熱く、質の良い国産ドラマは多くないと言わざるを得ません。永恒くんはこの前の話を見ていますが、突然大学時代に「脱獄」の味を見て、一話を見たら次の話を見たくて、止められませんでした。
今まだ読んでいないなら、時間を作ってみてください。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。