【数据采集与可视化案例】基于python的国家级非物质文化遗产数据采集与可视化分析

简介: 本文介绍了一个基于Python的数据采集与可视化分析项目,该项目通过爬虫技术从国家级非物质文化遗产代表性项目名录网站获取数据,并运用数据清洗、转换、集成和规约等方法处理数据,最终利用pyecharts库进行多种数据可视化展示,包括分布地、类别、时间趋势等,以直观呈现非物质文化遗产的相关信息。

1. 获取数据

1.1 发起请求

首先确定采集的数据网址url,通过查看国家级非物质文化遗产代表性项目名录的网页发现,点击下一页,网页网址没有变化,可以确定数据是动态数据。需要在xhr或者js寻找。

在xhr中可以找到网页数据,所以可以根据这个地方确定爬取的url是: https://www.ihchina.cn/Article/Index/getProject.html?province=&rx\_time=&type=&cate=&keywords=&category\_id=16&limit=10&p=1, 其中limit=10是页最大显示数,p=1代表第一页,所以翻页和最大显示数可以确定https://www.ihchina.cn/Article/Index/getProject.html?province=&rx\_time=&type=&cate=&keywords=&category\_id=16&limit=100&p={a}, a表示定义翻页数,可以通过循环获取不同页码,利用request。Get()方法,像这个网址发起请求,获取数据。

1.2 获取地址

根据1.1内容,依样画葫芦可以发现,国家级非物质文化遗产代表性项目代表性传承人、国家级非物质文化遗产代表性项目名录这两个页面,可以通过for循环获取到。而中国入选联合国教科文组织非物质文化遗产名录(名册)项目国家级文化生态保护区数据少,而且数据可以在页面上获取,不用构建翻页,直接选择原网址即可。

1.3 分析页面

通过1.1可以知道,国家级非物质文化遗产代表性项目代表性传承人、国家级非物质文化遗产代表性项目名录这两个页面的数据需要xhr查看到,如下图

可以发现其数据是以字典和列表为主,是一个典型的json数据特征。而国家级文化生态保护区和联合国教科文组织项目可以在页面上定位到数据,数据在网页标签内,故可以选择使用beautifulsoup或者lxml的etree解析数据,通过节点数爬取标签数据,如下图

1.4 数据提取

综合前面的内容可以知道,国家级非物质文化遗产代表性项目代表性传承人、国家级非物质文化遗产代表性项目名录这两个页面的数据经过get()方法请求获取响应数据后,选择将数据直接转换成json数据,通过字典键值对和循环列表数据提取里面的字段信息,包括内容如下图:

中国入选联合国教科文组织非物质文化遗产名录(名册)项目国家级文化生态保护区这两个页面数据,通过get方法获取响应信息后,利用etree解析网页数据,并通过定位标签,提取所包含的所有节点信息,提取出里面的字段如下图:

1.5 数据存储

国家级非物质文化遗产代表性项目代表性传承人、国家级非物质文化遗产代表性项目名录数据、国家级文化生态保护区三个页面提取成功后,通过openpyxl库,创建一个工作簿,通过指定单元格的形式来写入数据,最后保存为excel文档。

中国入选联合国教科文组织非物质文化遗产名录(名册)项目,通过采集下来的数据转换成dataframe数据结构,通过to_excel方法,将数据结构里的数据存为excel文档。

数据转换

对数据进行转换就是对数据的合并、清理和整合。通过转换,可以实现不同的源数据在语义上的一致性。本研究数据转换更多应用是数据类型的转换和整合。主要将表格数据读取转换成dataframe,再通过可视化之前,再由dataframe结构转换成list或者元组等数据类型,方便可视化进行。

数据清洗

数据清洗,顾名思义就是将要用到的数据中重复、多余部分的数据进行筛选并清除;把缺失部分补充完整,并将不正确的数据纠正或者删除。最后整理成可以进一步加工、使用的数据。从上面数据清洗的概念就可以大概知道数据清洗是在清洗什么了,洗掉的就是数据集中的“脏”数据。脏数据,即数据集中残缺、错误、重复的数据。数据清洗,旨在提高数据的质量、缩小数据统计过程中的误差值。本研究中,通过替换法,直接替换那些缺失值,使用replace()方法,将空值填补成无或者0,方便后面数据分析。

数据集成

数据集成包括数据抽取、转换、加载。抽取是将数据从已有的数据源中提取出来。
转换是对原始数据进行处理,变成目标数据格式的过程。加载是将转换的结果写入目的地。本研究通过if条件语句,将国家级非物质文化遗产代表性项目名录中地点抽取处理,存为dataframe结构数据,方便后期统计和可视化。

数据规约

数据归约是指在对挖掘任务和数据本身内容理解的基础上、寻找依赖于发现目标的数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下,最大限度地精简数据量。数据归约主要有两个途径:属性选择和数据采样,分别针对原始数据集中的属性和记录。本研究通过属性选择进行数据规约,如在国家级非物质文化遗产代表性项目名录数据中选择类别和申报地区进行分析。

2 数据可视化

2.1 分布地可视化

分布地可视化选择用饼状图,呈现各个地区入选项目数量的分布情况,清晰直观看出哪个地区占比最大,入选最多。通过导入数据,生成dataframe结构利用groupby函数将地区分组统计,转化成列表形式,最后使用pyechart可视化库,将数据渲染成饼图输出,如下图

2.2 类别可视化

类别可视化选择用柱状图,呈现不同类别入选的数量分布,可以直观知道哪个类别入选最多,哪个类别最少。通过导入数据,生成dataframe结构利用groupby函数将类别分组统计,转化成列表形式,最后使用pyechart可视化库,将数据渲染成柱形图输出,如下图

2.3 类别时间可视化

类别时间可视化通过分析非遗数据传承人不同类别随时间变化的趋势,本研究通过多重折线图,将不同类别数量随时间变化体现出来。可以直观知道哪个类别在什么时间最多,在什么时间最少。通过导入数据,生成dataframe结构利用筛选时间的方式将时间单独统计以及使用groupby函数分组统计类别,转化成列表形式,最后使用pyechart可视化库,将数据渲染成多重折线图输出,如下图

2.4 人数时间可视化

人数时间走势可视化通过分析非遗数据传承人不同时间人数变化趋势,可以直观知道不同时间段,非遗项目人数变化趋势。直观知道哪个时间在项目最多,在什么时间最少。通过导入数据,生成dataframe结构利用groupby函数将时间分组统计,转化成列表形式,最后使用pyechart可视化库,将数据渲染成折线图输出,如下图

非物质文化遗产生态保护区目录

保护区目录分布通过复合柱状图形式呈现不同地区县级和国家级项目数量,直观了解哪个地区项目最多,哪个地区项目最少。通过导入数据,生成dataframe结构利用groupby函数将地区分组统计,转化成列表形式,最后使用pyechart可视化库,将数据渲染成复合柱形图输出,如下图

名录可视化

名录可视化呈现的是中国入选联合国教科文组织非物质文化遗产名录,通过词云图的形式将项目呈现在图上面。通过导入数据,提取所有项目转换成列表,通过for循环统计各个项目出现次数,生成一个含有项目和个数的元组的列表,最后使用pyechart可视化库,将数据渲染成词云图输出,如下图

相关文章
|
18天前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
80 7
|
1月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
1月前
|
数据可视化 搜索推荐 Shell
Python与Plotly:B站每周必看榜单的可视化解决方案
Python与Plotly:B站每周必看榜单的可视化解决方案
|
2月前
|
机器学习/深度学习 数据可视化 Python
Python实用记录(三):通过netron可视化模型
使用Netron工具在Python中可视化神经网络模型,包括安装Netron、创建文件和运行文件的步骤。
51 2
Python实用记录(三):通过netron可视化模型
|
1月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
2月前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
2月前
|
数据采集 前端开发 NoSQL
Python编程异步爬虫实战案例
Python编程异步爬虫实战案例
77 2
|
2月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据处理与可视化——以气温数据分析为例
【10月更文挑战第12天】使用Python进行数据处理与可视化——以气温数据分析为例
350 0
|
2月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
33 0