网络爬虫(二) 哔哩哔哩热榜高频词按照图片形状排列

我们有时候需要爬取结果生成为自定义的词云图

生成自定义的词云图通常需要以下步骤:

1. 爬取数据:使用爬虫工具或库,如requests、BeautifulSoup等,可以爬取网页、论坛、社交媒体等平台上的文本数据。

2. 数据预处理:对爬取到的文本数据进行清洗和处理,去除无用字符、标点符号、停用词等,并进行分词操作。

3. 构建词频字典:统计每个词的出现频率,可以使用字典或Counter类记录每个词的频率。

4. 生成词云图:使用词云生成工具,如wordcloud库,根据词频字典生成词云图。可以根据需求设置词云的样式、颜色、形状等。

需要根据具体的需求对代码进行修改和完善,如数据预处理、词频统计等。另外,还可以根据需求自定义词云的样式、颜色、字体等。

需要导入的库,先pip安装一下

# 导入扩展库
import re # 正则表达式库
import collections # 词频统计库
import numpy as np # numpy数据处理库
import jieba # 结巴分词
import wordcloud # 词云展示库
from PIL import Image # 图像处理库
import matplotlib.pyplot as plt # 图像展示库
from pylab import mpl # 用于处理中文乱码

读取保存到csv的爬取结果,根据

# 读取文件
fn = open('all_data.csv', encoding='utf-8-sig') # 打开文件并编码
string_data = fn.read() # 读出整个文件
fn.close() # 关闭文件# 文本预处理
pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式
string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除# 文本分词
seg_list_exact = jieba.cut(string_data, cut_all=False) # 精确模式分词
object_list = []
remove_words = [u'的', u',', u'和', u'是', u'随着', u'对于', u'对', u'等', u'能', u'都', u'。', u' ', u'、', u'中', u'在', u'了',u'通常', u'如果', u'我们', u'需要', u'把', u'但', u'?', u'!', u'...', u'有', u'做', u'大', u'一个', u'一些', u':',u'》', u'!', u'】', u'[', u'【', u'+', u'我', u'你', u'"', u'。。。', u'《', u'1', u'/', u'?', u'吗', u'“',u'这', u'小', u'.', u'#', u'|', u'(', u')', u'(', u')', u'…', u'”', u',', u'不', u'上'] # 自定义去除词库for word in seg_list_exact: # 循环读出每个分词if word not in remove_words: # 如果不在去除词库中object_list.append(word) # 分词追加到列表# 词频统计
word_counts = collections.Counter(object_list) # 对分词做词频统计
word_counts_top10 = word_counts.most_common(10) # 获取前10最高频的词
print(word_counts_top10) # 输出检查# 词频展示
mask = np.array(Image.open('tree.jpg')) # 定义词频背景
wc = wordcloud.WordCloud(font_path='D:/Course/bilibiliHot/JiZiHeFengChiSong.ttf', # 设置字体格式mask=mask, # 设置背景图max_words=200, # 最多显示词数max_font_size=100, # 字体最大值background_color='white'# 设置背景颜色,默认为黑色black
)fig = plt.figure(figsize=(10, 8)) # 设置显示窗口大小
wc.generate_from_frequencies(word_counts) # 从字典生成词云
image_colors = wordcloud.ImageColorGenerator(mask) # 从背景图建立颜色方案
wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案
mpl.rcParams['font.sans-serif'] = ['SimHei']
plt.suptitle('词频分析') #这里设置中文可能会乱码,需要导包
plt.imshow(wc) # 显示词云
plt.axis('off') # 关闭坐标轴
plt.show() # 显示图像
wc.to_file('result.jpg') # 无白边保存图片
# fig.savefig('result01.jpg') # 有白边保存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/369731.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记(linux高级编程)10

IPC 进程间通信 interprocess communicate 三大类: 1、古老的通信方式 无名管道 有名管道 信号 2、IPC对象通信 system v BSD suse fedora kernel.org 消息队列(用的相对少,这里不讨论) 共享内存 信号量集 3、socket通信 网络通信 特…

windows电脑网络重置后wifi列表消失怎么办?

我们的电脑网络偶尔会出现异常,我们通常会下意识选择网络诊断,运行完诊断后一般会让我们选择重置网络,然而,重置后wifi列表突然消失,无法愉快地上网了,找了一圈,都说是更改适配器选项&#xff0…

【东奥会计-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

JavaScript(6)——数据类型转换

为什么需要类型转换? JavaScript是弱数据类型:JavaScript不知道变量到底属于哪种数据类型,只有赋值了才清除 使用表单,prompt获取的数据默认为字符串类型,此时不能直接进行算数运算 隐式转换 某些运算符被执行时&am…

gitLab使用流程

标题1.配置账户 git config --global user.name git config --global user.email mygitlabmali.cn 标题2.生成秘匙 ssh-keygen -t rsa -C “mygitlabmail.cn” 。 //输入命令后一直回车 ,输入命令后一直回车(密码可以不填),至…

证券交易系统中服务器监控系统功能设计

1.背景介绍 此服务器监控系统的目的在于提高行情服务器的监管效率,因目前的的行情服务器,包括DM、DT、DS配置数量较多,巡回维护耗时较多,当行情服务器出现异常故障,或者因为网络问题造成数据断线等情况时,监…

k8s record 20240705

k8s 安全管理 request 是1g,你得不到要求,我就不创建了,这就是准入控制二次校验 SA就是serviceAccount。 内部是SA和 token, 外部用户进来就是 .kube/config文件 namespace下的是role,整个集群是 ClusterRole. 动作就是Binding li…

电机驱动----L298N

一、介绍 L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,内含4路逻辑驱动电路,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。一般情况下,功率部分的电压应大于6V否则芯片…

LeetCode刷题记录:(15)三角形最小路径和

知识点&#xff1a;倒叙的动态规划 题目传送 解法一&#xff1a;二维动态规划【容易理解】 class Solution {public int minimumTotal(List<List<Integer>> triangle) {int n triangle.size();if (n 1) {return triangle.get(0).get(0);}// dp[i][j]:走到第i层第…

代理设计模式和装饰器设计模式的区别

代理设计模式: 作用:为目标(原始对象)增加功能(额外功能,拓展功能) 三种经典应用场景: 1&#xff1a;给原始对象增加额外功能(spring添加事务,Mybatis通过代理实现缓存功能等等) 2&#xff1a;远程代理&#xff08;网络通信&#xff0c;输出传输&#xff08;RPC&#xff0c;D…

2024年07月03日 Redis部署方式和持久化

Redis持久化方式&#xff1a;RDB和AOF&#xff0c;和混合式 RDB&#xff1a;周期备份模式&#xff0c;每隔一段时间备份一份快照文件&#xff0c;从主线程Fork一个备份线程出来备份&#xff0c;缺点是会造成数据的丢失。 AOF&#xff1a;日志模式&#xff0c;每条命令都以操作…

LabVIEW环境下OCR文字识别的实现策略与挑战解析

引言 在自动化测试领域&#xff0c;OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;技术扮演着重要角色&#xff0c;它能够将图像中的文字转换成机器可编辑的格式。对于使用LabVIEW约5个月&#xff0c;主要进行仪器控制与数据采集的你而言…

linux ls文件排序

linux可以使用ls命令结合一些选项来按照文件大小对文件和目录进行排序。以下是一些常用的方法&#xff1a; 1、这里&#xff0c;-l 选项表示长格式输出&#xff08;包括文件权限、所有者、大小等&#xff09;&#xff0c;-S 选项表示按照文件大小排序&#xff0c;-h 选项表示以…

hitcontraining_uaf

BUUCTF[PWN][堆] 题目&#xff1a;BUUCTF在线评测 (buuoj.cn) 程序del是没有将申请的指针清零&#xff0c;导致可以再次调用输出print。 查看add_note函数&#xff1a;根据当前 notelist 是否为空&#xff0c;来申请了一个8字节的空间将地址(指针)放在notelist[i]中&#xff…

Unity 解包工具(AssetStudio/UtinyRipper)

文章目录 1.UtinyRipper2.AssetStudio 1.UtinyRipper 官方地址&#xff1a; https://github.com/mafaca/UtinyRipper/ 下载步骤&#xff1a; 2.AssetStudio 官方地址&#xff1a; https://github.com/Perfare/AssetStudio 下载步骤&#xff1a;

Eslint prettier airbnb规范 配置

1.安装vscode的Eslint和prettier 插件 eslint&#xff1a;代码质量检查工具 https://eslint.nodejs.cn/docs/latest/use/getting-started prettier&#xff1a;代码风格格式化工具 https://www.prettier.cn/docs/index.html /* eslint-config-airbnb-base airbnb 规范 esl…

ASP.NET Core Blazor 5:Blazor表单和数据

本章将描述 Blazor 为处理 HTML 表单提供的特性&#xff0c;包括对数据验证的支持。 1 准备工作 继续使用上一章项目。   创建 Blazor/Forms 文件夹并添加一个名为 EmptyLayout.razor 的 Razor 组件。本章使用这个组件作为主要的布局。 inherits LayoutComponentBase<div …

泛微E9开发 根据故障来源新增明细行,并且初始化错误类型

根据故障来源新增明细行&#xff0c;并且初始化错误类型 1、需求说明2、实现方法3、扩展知识点3.1 批量修改字段值或显示属性3.1.1 格式3.1.2 参数3.1.3 演示 3.2 根据字段ID获取字段信息3.2.1 格式3.2.2 参数3.2.3 演示 1、需求说明 用户对出现故障的机器或设备进行判断问题判…

【数据库了解与学习】

1.下载所需版本安装包 1.1将所需文件压缩包以及安装包放在你选择的任意一盘&#xff0c;新建一个没有文字和空格的文件夹 1.2双击打开安装包&#xff0c;选择Custom自定义模式然后点击右下方的Next 1.4三连点击1&#xff0c;再点击箭头出现3&#xff0c;选中3出现4&#xff0c;…

Java--继承

1.继承的本质是对某一批类的抽象&#xff0c;从而实现对世界更好的建模 2.extends的意思是“扩展”&#xff0c;子类是父亲的扩展 3.Java中只有单继承&#xff0c;没有多继承 4.继承关系的两个类&#xff0c;一个为子类&#xff08;派生类&#xff09;&#xff0c;一个为父类…