前言
B站作為一個彈幕視頻網站,有著所謂的彈幕文化,那么接下來我們看看,一個視頻中出現最多的彈幕是什么?
PS:想看教學視頻的,地址在這里喲
https://www.bilibili.com/video/BV1ci4y1g7eE/
知識點:
- 爬蟲基本流程
- 正則
- requests
- jieba
- csv
- wordcloud
開發環境:
- Python 3.6
- Pycharm
爬取目標
https://www.bilibili.com/video/BV1Mk4y1z7ey/?spm_id_from=333.788.videocard.6
代碼
1.匯入工具
from bs4 import BeautifulSoup import requests import re import csv
2.匯入詞云制作庫wordcloud和中文分詞庫jieba
import jieba import wordcloud
3.匯入imageio庫中的imread函式,并用這個函式讀取本地圖片,作為詞云形狀圖片
import imageio mk = imageio.imread(r"拳頭.png") headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", "cookie": "_uuid=E151BB47-D49E-6692-19A1-2514519BCB6896608infoc; buvid3=6B813D30-FC11-4BAC-B077-A65D7118C308138392infoc; sid=bmsyfv4j; DedeUserID=24695355; DedeUserID__ckMd5=1027309007358c2f; SESSDATA=https://www.cnblogs.com/hhh188764/p/2ae6a4d8%2C1612179663%2Cb09ca*81; bili_jct=77765442d3466b18abf9c6c02098f2f1; CURRENT_FNVAL=16; rpdid=|(umuum~lllm0J'ulmYYJl|Rm; bp_video_offset_24695355=420789477979262399; LIVE_BUVID=AUTO9115968115538586; PVID=1; bsource=search_baidu; bfe_id=6f285c892d9d3c1f8f020adad8bed553" } # response = requests.get("https://api.bilibili.com/x/v1/dm/list.so?oid=186803402", headers=headers) response = requests.get("https://api.bilibili.com/x/v2/dm/history?type=1&oid=186803402&date=2020-08-08", headers=headers) # print(response.text) html_doc = response.content.decode('utf-8') print(html_doc) # soup = BeautifulSoup(html_doc,'lxml') format = re.compile("<d.*?>(.*?)</d>") DanMu = format.findall(html_doc) for i in DanMu: with open('C:/Users/Mark/Desktop/b站彈幕.csv', "a", newline='', encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) danmu = [] danmu.append(i) writer.writerow(danmu)
4.構建并配置詞云物件w,注意要加stopwords集合引數,將不想展示在詞云中的詞放在stopwords集合里,這里去掉“曹操”和“孔明”兩個詞
w = wordcloud.WordCloud(width=1000, height=700, background_color='white', font_path='msyh.ttc', mask=mk, scale=15, stopwords={' '}, contour_width=5, contour_color='red')
5.對來自外部檔案的文本進行中文分詞,得到string
f = open('C:/Users/Mark/Desktop/b站彈幕.csv', encoding='utf-8') txt = f.read() txtlist = jieba.lcut(txt) string = " ".join(txtlist)
6.將string變數傳入w的generate()方法,給詞云輸入文字
w.generate(string)
7.將詞云圖片匯出到當前檔案夾
w.to_file('C:/Users/Mark/Desktop/output2-threekingdoms.png')
最后運行代碼
PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取
可以免費領取原始碼、專案實戰視頻、PDF檔案等
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/57002.html
標籤:Python
上一篇:python面試應該注意哪些問題
