Python爬取网站小说并可视化分析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: Python爬取网站小说并可视化分析

时间荏苒,岁月不居,看过四处风景,唯独钟爱,路遥先生的那一句话“人之所以痛苦,在于追求错误的东西,如果你不给自己烦恼,别人也永远不可能给你烦恼”,生活正是如此,一切过多的在意都是自己的想法,有时候就需要活的洒脱一点,学会看淡一点,多看点书,人自然也就变得开明了,事物也就自然看的透彻一点。


读书破万卷、下笔如有神,书中自有黄金屋,书中自有颜如玉,腹有诗书气自华…中国是诗的国度,更是书籍文化的摇篮,书本最是可以提升一个人的气度。那么今天我们就来做一个项目,我把我最喜欢的《人生》这本书数据爬取下来,做一个简单的数据分析,找出一些特点。


话不多述我们开始步入正轨吧!


目标网址

https://www.cz2che.com/0/175/7710.html

这个网站收集了很多优秀书籍,还有诗词典故,中外名著,在里面你可以找到属于你自己的那一本书,静静的的享受文字的魅力…

image.png

解析网址


我们爬取的时候首先必须要搭建自己框架,至于有些网站它会有一些反爬技术,有一些内容会被加密,那么我们去解析的时候要根据网站的特点去解密,收集数据,不断的去测试,反复的优化我们的代码,这样才能达到一定的效果。本次的代码设计具有可移植的效果,只是有些文本需要自己的去按照正则表达式或Xpath或beautifulsoup这些解析方法来匹配数据。


image.png

我这里用到的一个使我们最为常用的一个解析库-Xpath,它具有简单,易懂的特点,但是对于有一些动态的网站,那么就有一点棘手了,这个时候我们要根据自己的目标网址来选取。

好了前期工作我们都准备好了,那么我们现在就要按照我们爬虫的思路开始吧!

请求网址

 headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'
        }
        res=requests.get(url=url,headers=headers)
        # print(res.encoding)
        res.encoding='GBK'
        html=res.text
        # print(html)
        html_=etree.HTML(html)
        # print(html_)
        text=html_.xpath('//div[@class="panel-body content-body content-ext"]//text()')
        # text.remove("    ")

爬虫不可缺少的:

第一步:

伪装头,伪装pycharm成为浏览器,去请求网址内容,利用headers做一个参数

第二步:

编码格式,是要知道这个网址的编码是什么,这个是我们有时候最为忽视的一步,那么我们如何知道这个网址的编码是什么呢?

在console控制台输入document.charset 然后回车,如图:

image.png

第三步:

解析网址,我们最为常用的就是,Xlxm这个库,首先返回这个网址的源码的文本格式,然后我们利用html_=etree.HTML(html),html就是文本参数,我们解析把这个网页的源码解析好之后,就开始匹配数据了。

仅作为参考,网页时刻在发生变化

text=html_.xpath('//div[@class="panel-body content-body content-ext"]//text()')

这个每次返回的是一个列表,我们根据段落的特点把数据存储下来,那么我们的爬取数据就简单的完成了。

image.png

写入文件

  num=len(text)
        for s in range(num):
            file.write(text[s]+'\n')

这里按照段落特点写入到我们的txt格式里面。当然这里我们只是爬取了第一章,那么我们如何爬取整本书,就需要对网页做进一步的分析了,我们观察发现,我们第一章和第二章网址差别就是里面的某一个参数发生了改变:

https://www.cz2che.com/0/175/7713.html
https://www.cz2che.com/0/175/7714.html

那么这样就比较方便了,我们每次循环请求的时候,只需要改变这一个参数即可,我们利用format来解决这个,之前有童鞋问道format感觉很少用到,哈哈哈,我只想说一句“书到用时方恨少”

image.png

利用beautifulsoup爬取过程

image.png

现在我们完全爬取结束了!!

分析数据

获取到了一本书的数据,我们最先想到的就是我们利用jieba库进行中文分词,最后去统计文章里面出现的词组频次,最后排序输出,生成词云图,达到可视化的要求。

那么下面我们就开始读取数据,分词,统计,可视化了…

    a=file.read()
    b=jieba.lcut(a)

至于jieba库我们经常用到的就是这一个语法知识,对于jieba库的操作,我们的计算机二级也是有一定的要求和了解的。

那么我们如何去除掉文章里面的大量的标点符号,我们就需要利用到for循环的in操作;image.png

去除掉我们标点符号,最终按照我们的标准统计法对我们的词组进行统计

代码如下:

with open(r"人生.txt", encoding="utf-8") as file:
    a=file.read()
    b=jieba.lcut(a)
    for x in b:
        if x in ",。、;:‘’“”【】《》?、.!… ":
            continue
        else:
            if len(x)==1:
                ll.append(x)
            elif len(x)==2:
                lg.append(x)
            elif len(x)==3:
                lk.append(x)
            else:
                lj.append(x)
    with open(r"数据分析.txt", "w", encoding="utf-8") as f:
        for word in lj:#如果想要统计其他字符长度的,只需要换一个变量即可
            d[word] = d.get(word, 0) + 1
        ls = list(d.items())
        ls.sort(key=lambda x: x[1], reverse=True)
        for i in range(10):
            print(ls[i][0])
        for a in ls:
            # new_word=a[0] +' '+str(a[1])
            new_word=a[0]
            f.write(new_word+'\n')

得到本书中四字词语的出现最多的次数:

image.png

总结

1.爬取数据

2.存储数据

3.分析数据

最后我们利用词云图把这个可视化呈现给用户:

image.png

效果展示

20201023205426972.png20201023205457997.png

本次爬取的代码具有可移植性,对该网站的所有书籍都可行,本文只提供思路,需要源码的可以私信我!


相关文章
|
1月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
123 70
|
2月前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
1月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费习惯分析的深度学习模型
使用Python实现智能食品消费习惯分析的深度学习模型
142 68
|
29天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
113 36
|
23天前
|
数据可视化 算法 数据挖掘
Python量化投资实践:基于蒙特卡洛模拟的投资组合风险建模与分析
蒙特卡洛模拟是一种利用重复随机抽样解决确定性问题的计算方法,广泛应用于金融领域的不确定性建模和风险评估。本文介绍如何使用Python和EODHD API获取历史交易数据,通过模拟生成未来价格路径,分析投资风险与收益,包括VaR和CVaR计算,以辅助投资者制定合理决策。
69 15
|
27天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
107 18
|
29天前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
206 7
|
2月前
|
测试技术 开发者 Python
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
65 8
|
2月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。