前几天学习了csdn榜一的EDG夺冠d幕爬取以及词云图的制作,今天心血来潮就来举一反三爬取b站周杰伦《可爱女人》的d幕制作词云图。
打开b站搜索周杰伦,选取点击最多
进入视频
“亚洲流行音乐之王”映入眼帘
接下来让我们把这些d幕爬下来
右击鼠标,选择检查
点击“网络”
然后刷新浏览器界面
接下来只要找到d幕的网络接口就好啦!
但是现在b站已经很难找到网络接口了
不过我们可以用以前的API: https://api.bilibili.com/x/v1/dm/list.so?oid=XXX
每一个视频都对应一个oid哦,所以现在我们需要找到oid
怎么找到oid呢?点开视频右端的d幕列表,点击打开历史d幕
然后在筛选器里输入history
点击下方第一个url文件并拖至最底端
所以我们要找的oid=2154848
所以API为 https://api.bilibili.com/x/v1/dm/list.so?oid=2154848
打开这个网站试试看
是我们想要的d幕
API找到了,接下来开始爬取并且保存
import re import requests url="https://api.bilibili.com/x/v1/dm/list.so?oid=2154848" res=requests.get(url) res.encoding=res.apparent_encoding ResText=res.text pattern=re.compile(r'(.*?)')##运用正则表达式 data=pattern.findall(ResText) # 保存数据 with open("《可爱女人》d幕.txt",mode="a",encoding="utf-8") as f: for i in data: f.write(i) f.write("n")
成功爬取并保存。(是不是很简单)
接下来以下面这张图片制作词云图
# -*- coding: utf-8 -*- """ Created on Wed Nov 10 08:51:02 2021 @author: asus """ # 1 导入相关库 import pandas as pd import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt from imageio import imread import warnings warnings.filterwarnings("ignore") # 注意:动态添加词语集 for i in ["周杰伦","华语乐坛第一人","亚洲流行音乐之王","还有谁","地表最强"]: jieba.add_word(i) # 2 读取文本文件,并使用lcut()方法进行分词 with open("《可爱女人》d幕.txt",encoding="utf-8") as f: txt = f.read() txt = txt.split() txt = [i.upper() for i in txt] data_cut = [jieba.lcut(x) for x in txt] # 3 读取停用词 with open("stoplist.txt",encoding="utf-8") as f: stop = f.read() stop = stop.split() stop = [" "] + stop # 4 去掉停用词之后的最终词 s_data_cut = pd.Series(data_cut) all_words_after = s_data_cut.apply(lambda x:[i for i in x if i not in stop]) # 5 词频统计 all_words = [] for i in all_words_after: all_words.extend(i) word_count = pd.Series(all_words).value_counts() # 6 词云图的绘制 # 1)读取背景图片 back_picture = imread("zjl.jpg") # 2)设置词云参数 wc = WordCloud(font_path="simhei.ttf", background_color="white", max_words=1000, mask=back_picture, max_font_size=200, random_state=42 ) wc2 = wc.fit_words(word_count) # 3)绘制词云图 plt.figure(figsize=(16,8)) plt.imshow(wc2) plt.axis("off") plt.show() wc.to_file("周杰伦词云.png")
然后等一小会~
Woo~ 是不是很酷!欢迎分享,转载请注明来源:内存溢出
评论列表(0条)