【python】python小说数据抓取+可视化(源码+数据)【独一无二】

简介: 【python】python小说数据抓取+可视化(源码+数据)【独一无二】


👉博__主👈:米码收割机

👉技__能👈:C++/Python语言

👉公众号👈:测试开发自动化【获取源码+商业合作】

👉荣__誉👈:阿里云博客专家博主、51CTO技术博主

👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。

主要采集是创世中文网,网页中主要功能如下:

  1. 爬取小说信息: 通过循环遍历预设的小说类型和页数,使用requests库发送HTTP请求获取每一页小说信息的HTML页面,然后解析库提取页面中的小说标题、等级、类型、字数和简介等信息,并保存到Excel文件中。
  2. 数据清洗和转换: 读取Excel文件中的数据,对字数进行单位统一和异常处理,确保数据的准确性和一致性。
  3. 数据可视化: 绘制多种图表,包括散点图、折线图、柱状图、饼图和词云图,展示了小说数据的不同特征和分布情况,如小说等级与字数的关系、小说标题长度与字数的关系、不同类型小说的总字数和数量分布、每种类型小说的平均字数以及字数最多的前15篇小说等。
  4. 提供数据分析: 通过观察和分析生成的图表,用户可以更直观地了解小说数据的特征和规律,例如不同类型小说的数量和字数分布情况,以及字数最多的小说等。这些分析有助于用户做出进一步的决策或研究。

数据抓取内容如下,主要采集了 2000+ 条数据,保存到excel文件中:

👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈

👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈

👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈

👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈

import time
import requests
from lxml import etree
import csv
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
plt.rcParams["font.sans-serif"]=["SimHei"]
def save_data(data_list):
    # 使用'utf-8-sig'编码来确保UTF-8文件可以正确地读取中文字符
    # 略...
    # 略...
        # 略...
            # 略...
                # 略...
                    # 略...
                        # 略...> 👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈
# 爬取url集合
url_dic = {
  # 略....
  # 略....
  # 略.... # 略....> 👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈
  # 略.... # 略....
  # 略.... # 略....
  # 略.... # 略....
  # 略....
}
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
}
save_data(["标题", "等级", "类型", "字数 ", "简介"])  # 标题
for url, page in url_dic.items():
    for i in range(1, page + 1):
            time.sleep(2)
            nurl = url + str(i)
            html = requests.get(url=nurl, headers=header)
            for k in range(1, 20):
                try:
                    # 提取页面信息
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # > 👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                    # 略。。。。。。
                except:
                    print("异常页数,已经略过...")
                    continue
time.sleep(3)
# 读取数据
df = pd.read_csv('noval_data1.csv')
# 首先进行替换(数据清洗)
df['字数 '] = df['字数 '].str.replace('万字', '', regex=False)
# 然后进行转换(数据处理)
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
# 略。。。。。。
> 👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈
df['字数 '] = df['字数 '].apply(convert_to_wan)
# 散点图:等级 vs 字数
plt.figure(figsize=(10, 6))
for level in df['等级'].unique():
    plt.scatter(df[df['等级'] == level]['等级'], df[df['等级'] == level]['字数 '], label=level)
plt.title("散点图:等级 vs 字数")
plt.ylabel("字数(万字)")
plt.legend()
plt.show()
# 根据标题的长度进行排序并选取前10篇
top_10_longest_titles = df.sort_values(by='标题', key=lambda x: x.str.len(), ascending=False).head(10).copy()
# 折线图:按标题的字数
plt.figure(figsize=(10, 6))
plt.plot(top_10_longest_titles['标题'], top_10_longest_titles['字数 '], marker='o')
plt.title("折线图:名字最长的前10篇小说的字数")
plt.xticks(rotation=45, ha='right')
plt.ylabel("字数(万字)")
plt.tight_layout()
plt.show()
# 柱状图:按类型的总字数
type_sum = df.groupby('类型')['字数 '].sum()
type_sum.plot(kind='bar', figsize=(10, 6))
plt.title("柱状图:类型 vs 总字数")
plt.ylabel("字数(万字)")
plt.show()
# 饼图:每个类型的小说数量
type_counts = df['类型'].value_counts()
type_counts.plot(kind='pie', figsize=(8, 8), autopct='%1.1f%%')
plt.title("饼图:小说类型分布")
plt.ylabel("")
plt.show()
# 根据类型计算平均字数
avg_word_by_type = df.groupby('类型')['字数 '].mean()
# 柱状图:类型 vs 平均字数
plt.figure(figsize=(10, 6))
avg_word_by_type.plot(kind='bar', color='skyblue')
plt.title("柱状图:类型 vs 平均字数")
plt.ylabel("平均字数(万字)")
plt.xlabel("小说类型")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
> 👉👉👉源码关注【测试开发自动化】公众号,回复 “ 小说数据抓取 ” 获取。👈👈👈
# 选择字数最多的前15篇小说
top_15_by_word_count = df.nlargest(15, '字数 ')
# 柱状图:标题 vs 字数
plt.figure(figsize=(12, 8))
plt.bar(top_15_by_word_count['标题'], top_15_by_word_count['字数 '], color='teal')
plt.title("柱状图:字数最多的前15篇小说")
plt.ylabel("字数(万字)")
plt.xlabel("小说标题")
plt.xticks(rotation=90)
plt.tight_layout()
plt.show()
# 词云图:标题
wordcloud = WordCloud(font_path=r'msyh.ttc', width=800, height=400, background_color='white').generate(' '.join(df['标题']))
plt.figure(figsize=(10, 6))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title("词云图:标题")
plt.show()

相关文章
|
4月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
2789 1
|
4月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
592 0
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
387 0
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
371 2
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
352 2
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
210 1
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集

推荐镜像

更多