Pythonは英雄連盟MSIに登り、弾幕を生放送し、詞雲図を生成します。


一、環境準備
関連第三者ライブラリの設置
pip install jieba
pip install wodcloud
二、データ準備
はい、対象:2021年5月23日、RNG優勝生放送間の弾幕情報
対象のパスを取り込む:
方法1、開発者ツール(F 12)に従って、要求url、要求ヘッダ、クッキーなどの情報を取得する。
方式2:生放送の住所urlによって、前+文字i
私たちがここで実証したのは、方式を採用することです。
三、コードは以下の通りです

import requests, re
import jieba, wordcloud

"""
#        
def get_f12_barrage(url, headers, file_path):
    
    #  f12  ,    ,      
    #:param url:        (       ,         )
    #:param headers:        
    #:param file_path:          
    #:return:         
    
    # 1、    ,      
    response = requests.get(url=url, headers=headers)
    # 2、      
    #            ,            
    # apparent_encoding   :                 
    response.encoding = response.apparent_encoding
    # 3、      
    content = response.text
    content_list = re.findall(":(.*?)@", content)
    # 4、      , ”w+  “,      ,     ,        
    with open(file_path, mode="w+", encoding="utf-8") as fp:
        for line in content_list:
            #      ,              ,        
            fp.write(line[1:] + "
") return file_path """ # ******************8******************** ****************************************** # : , , def get_barrage(url, headers, file_path): """ +i , :param url: ( +i) :param headers: :param file_path: :return: """ # 1、 , response = requests.get(url=url, headers=headers) # 2、 # , # apparent_encoding : response.encoding = response.apparent_encoding # 3、 # response.text content = response.text # , (.*?) content_list = re.findall("<d p=\".*?\">(.*?)</d>", content) # 4、 , ”w+ “, , , with open(file_path, mode="w+", encoding="utf-8") as fp: for line in content_list: fp.write(line + "
") return file_path # https://api.bilibili.com/x/v1/dm/list.so?oid=343174354 # https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=343174354&date=2021-05-23 def make_word_cloud(word_file_path): # 1、 , gbk , utf-8 with open(word_file_path, encoding="utf-8") as fp: content = fp.read() # read # 2、 , , content_list = jieba.lcut(content) # , content_str = " ".join(content_list) # 3、 wc_config = wordcloud.WordCloud( width=700, # height=500, # background_color='black', # font_path='msyh.ttc', # C:\Windows\Fonts\ , ( 3 ), 【 - 】 scale=15, # stopwords={' ', ' '}, # contour_width=5, # contour_color='red' # ) # 4、 , , wc_config.generate(content_str) wc_config.to_file("e:\\reg_cloud.png") return word_file_path if __name__ == "__main__": """ # url f12_url = 'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=343174354&date=2021-05-23' # , , cookie、user-agent header = { 'cookie': 'bsource=search_baidu; _uuid=BBD44BE2-5DAA-A13A-A593-FD3A83C3929423721infoc; buvid3=18335C4D-A3A0-48D5-973A-7943D63AC73E34756infoc; CURRENT_FNVAL=80; blackside_state=1; rpdid=|(um|u)klum~0J\'uYkkJJkJJu; fingerprint=be684c13c90e4279aaaa3e2694da4285; buvid_fp=18335C4D-A3A0-48D5-973A-7943D63AC73E34756infoc; buvid_fp_plain=96D5E0EF-41D9-4A32-BE47-DFF96C44DB9F155821infoc; SESSDATA=f90082f7%2C1637884658%2C008f9%2A51; bili_jct=2f17a04a5651fb1c6579b73aeb640f7f; DedeUserID=1153205015; DedeUserID__ckMd5=b6f334f0a2d86238; sid=6vb9j9nl; bfe_id=6f285c892d9d3c1f8f020adad8bed553', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36' } # f12_file_path = "e:\\RNG.txt" """ # , +i url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=343174354' file_path = "e:\\RNG_1.txt" # cookie user-agent, f12 , # , cookIe header = { 'cookie': '********', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36' } # get_barrage(url=url, headers=header, file_path=file_path) word_file_path = get_barrage(url=url, headers=header, file_path=file_path) make_word_cloud(word_file_path)
四、詞雲図の効果展示
在这里插入图片描述
ここで、Pythonが英雄連盟MSIに登り、弾幕を生中継し、詞雲図を生成する文章について紹介します。これに関連して、Pythonは弾幕を取って、詞雲図の内容を生成します。以前の文章を検索してください。または、下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。