b站网页版倍速无效_python爬取B站网页弹幕内容,并将爬取内容以五角星的形式显示出来...

757ad5923384e5349c88ffa7a74d9452.png

思路:

  • 向哔哩哔哩网站发送请求
  • 请求成功后,解析爬取的弹幕内容保存到一个文件中
  • 读取文件并分析弹幕内容中词组或文字出现的频率
  • 将这些词组或文字组成五角星图形
  • 组成五角星图形后,以图片的形式输出
cc94161f9711caec2923643b378ea228.png

使用到的类库,如果没有,需要下载,下载命令:

pip install requestspip install bs4pip install pandaspip install lxml # 在解析xml文件时,需要使用pip install jiebapip install wordcloudpip install imageiopip install matplotlib

实现:

import requestsfrom bs4 import BeautifulSoupimport pandas as pdimport reimport jiebafrom wordcloud import WordCloudfrom imageio import imreadimport matplotlib.pyplot as plt​'''python学习交流群:821460695更多学习资料可以加群获取'''# 网页地址,该地址只针对哔哩哔哩弹幕网有效,获取方式查看url = "http://comment.bilibili.com/124001121.xml"​# 网站访问的用户代理,建议携带,不携带可能无法访问header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"}​# 向对方服务器发送请求,返回访问状态,# 返回状态如果是以[2]开头,表示访问成功,[4]开头表示网页不存在,[5]开头网站内部错误# 访问状态无法直接读取,需通过属性[text]获取response = requests.get(url,header)​# 获取网页的编码规则,建议通过该方式获取,而不是直接赋值,可能存在设置不对的情况,可能不是中文网页# response.encoding = "utf-8"response.encoding = response.apparent_encoding# print(response.text)​# 获取网页文本内容data = response.text'''--将获取到的弹幕内容处理后存放在txt文件中,并读取出来--网页获取的弹幕内容是带html标签的,需要将标签和非汉字的内容清除'''# 解析文本xml,处理不规范标记并生成剖析树soup = BeautifulSoup(data,'lxml') # print(soup)# 获取所有标签中的内容,此时是带标签的文本内容d_list = soup.find_all('d')​# 去掉标签,将文本内容存在在列表dlstdlst = []for d in d_list: danmu = {} danmu['弹幕'] = d.text # 循环获取所有标签中内容 dlst.append(danmu)​df = pd.DataFrame(dlst) # 将列表dlst中的内容存放在数据集中,类似于Excel表格# print(df)​# 创建并打开一个文件f = open('cl.txt','w',encoding='utf-8')# 进行文本过滤for i in df['弹幕'].values: # 遍历数据集中的所有的弹幕内容 pat = re.compile(r'[一-龥+]') # 定义过滤规则,只保留中文汉字,该正则表达式几乎包含了所有汉字龥(yu,第四声) filter_data = re.findall(pattern=pat,string=i) # 执行过滤操作 f.write(''.join(filter_data)) # 将过滤后的弹幕内容写入创建的[cl.txt]文件中f.close()​'''--读取弹幕内容所在的文件[cl.txt]'''f1 = open('cl.txt','r',encoding='utf-8')data = f1.read()​'''--将弹幕内容分割成词组,并组合成五角星的图案'''result = " ".join(jieba.lcut(data))​f1.close()color_mask = imread("五角星.jpg") # 设置数据组合的图形,最好使用空心的图片wc = WordCloud( font_path="C:WindowsFontssimsun.ttc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值