开发者社区> 王小王-123> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Python爬取全网文字并词云分析(全程一键化!)

简介: Python爬取全网文字并词云分析(全程一键化!)
+关注继续查看

前景引入

最近Python很火,确实很火,好像一直都比较火,哈哈哈哈。如果你也觉得很火,那么就请看完这篇文章吧,看看Python的热度到底能不能使我这篇文章火起来。


那么作为后起之秀的编程语言——Python,它到底能够做些什么了,网上一直在“炒作”Python:一键化办公,学好Python薪资翻一番,让你的生活多一点money,让你的老板对你刮目相看,让你从此找到自信!这不是吹捧,也不是浮夸。从云计算、大数据到人工智能,Python无处不在,百度、阿里巴巴、腾讯等一系列大公司都在使用Python完成各种任务,让Python越来越接地气了,它的功能也不用我说了,它的优势和特点我也不再赘述了,毕竟本篇是一个技术文章,话不多说,开干!

如果你是科研党,请看完文章!文末有惊喜哟!

源码点击这里下载,直接可以运行

项目简介

近期收到CSDN上的小粉私信,说之前一篇文章文章Python爬取网站小说并可视化分析那个网站比较的好,说想要这个网站的所有书籍,自己拿去好好地研读。出于对粉丝的关心,再加上我个人也是比较喜欢文学作品的,无聊闲暇之余,看一本书陶冶一下自己的情操也不是不可的,哈哈哈。收到请求之后,我马上就开始架构思路了,我通过观察网页结构发现了它的特点,最后我加上自己的设计思路,增加词云分析这个功能,多次测试,最终达到了一键化!!!!!!!


项目思路与功能介绍

1.用户输入该网站里面的任何一本书籍的网页链接,输入储存路径回车即可,后台及运行爬虫,之后再去运行智能分词,最后利用强大的pyecharts库,来展示词云图

image.png

2.这么多的书籍,够你看了吧,如果你不想看,想知道这本书主要讲的是什么,出现哪些高频词,最终也会帮助你理解和了解这篇文章的主要内容。


3.本期项目依靠数据分析库和Python原生态的库,进行文本分词,智能切割,智能词云算法和智能爬虫算法,有反爬技术的书写,也有数据分析的亮点。


项目实现

1.首先你必须要安装好这几个库

/image.png

不会的请看这篇文章,有详细的介绍,要是看不懂我给你安装!绝对可以安装好的~

2.实现爬虫算法

提前定义好全局变量

from pyecharts import options as opts
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
import jieba  # jieba用于分词,中文字典及其强大
from fake_useragent import UserAgent
import requests
from lxml import etree
import time
ll = []
lg = []
lk = []
lj = []
lp = []
li = []
d = {}  # 定义好相应的存储变量
def get_data(title,page,url,num):#title代表文件路径 page代表爬取的章节数 url为修订后网址 num为标签页数
    with open(r"{}.txt".format(title), "w", encoding="utf-8") as file:
        ua = UserAgent()  # 解决了我们平时自己设置伪装头的繁琐,此库自动为我们弹出一个可用的模拟浏览器

        def get_page(url):
            headers = {"User-Agent": ua.random}
            res = requests.get(url=url, headers=headers)
            res.encoding = 'GBK'
            html = res.text
            html_ = etree.HTML(html)
            text = html_.xpath('//div[@class="panel-body content-body content-ext"]//text()')
            num = len(text)
            for s in range(num):
                file.write(text[s] + '\n')

        for i in range(page):
            # time.sleep(2)
            file.write("第{}章".format(i + 1))#写入文本数据
            get_page(url+"{}.html".format(num + i))#爬虫标签页移动,数据输出爬取过程
            print("正在爬取第{}章!".format(i + 1))
        print("爬取完毕!!!!")

3.实现智能分词

我自己写了一个智能词云算法,包括各种小功能的实现,设计不易,拒绝白嫖哟,有需要的可以私信我或者自己下载!!!

4.主函数

def main():
    try:
        print("\t\t本小程序只针对:<https://www.cz2che.com/>网址有效,里面有大量的古今中外名著小说!!!\n\n")
        print("C:\\Users\\48125\\Desktop\\")
        title = input("请输入储存文本的路径及名称如桌面:(C:\\Users\\48125\\Desktop\\文本)不需要加.txt!\n")
        urll  = str(input("请输入您要爬取的网站(请将键盘光标移动到网址前面在回车!):"))
        url   = str(urll[:urll.rindex('/') + 1])
        num   = int(urll[urll.rindex('/') + 1:len(urll) - 5])
        print(url,num)
        page  = int(input("请输入本次您要爬取的章节数:\n"))
        get_data(title,page,url,num)
        Open(title)
        print("\n分词完毕!")
        print('''\n\n\t\t一键词云算法生成器
        \t0--退出词云系统
        \t1--生成一词组的词云图
        \t2--生成二词组的词云图
        \t3--生成三词组的词云图
        \t4--生成四词组的词云图
        \t5--生成大于1词组的词云图(研究常用)
        \t6--生成全部词组的词云图(包含所有类型的词组)
        ''')
        num = int(input("请输入本次展示的词语数量(最好不超过100):"))
        data = sort()[:num]
        Str = input("请输入这个词云图的标题:")
        print("词云图已经生成完毕,请查收!")
        print("感谢您对本程序的使用,欢迎下次光临!!")
        c = (
            WordCloud()
                .add(
                "",
                data,  # 数据集
                word_size_range=[20, 100],  # 单词字体大小范围
                shape=SymbolType.DIAMOND)  # 词云图轮廓,有以下的轮廓选择,但是对于这个版本的好像只有在提示里面选
                # circl,cardioid,diamond,triangle-forward,triangle,start,pentagon
                .set_global_opts(title_opts=opts.TitleOpts(title="{}".format(Str)),
                                 toolbox_opts=opts.ToolboxOpts())  # 工具选项
                .render("{}词云制作{}词组.html".format(title, choice))
        )
        return c
    except:
        print("无法找到,请检查你的输入!")

项目实现

1.输入网址和保存路径,以及爬取的章节数

20201229221935365.png

2.智能爬虫开启运行

20201229222215385.png

image.png

3.智能算法开启

image.png

image.png

4.效果展示

桌面自动出现,点击网页HTML即可展示词云,还可以自己下载,这就是pyecharts库的特点

20201229223217704.png

20201229223346481.png

20201229223411462.png

看起来还不错吧,我也觉得效果还可以,主要是这个一键化太让我省心了,以后还可以做知网上面的,帮助科研人员做科研方面的研究,还有各个电商网站的评论,来解决老板对商品的评估,这样的一键化可以帮助我们减少浪费的时间,当然老板也会喜欢的。


源码私信我!!!!设计着实不易!!!


项目拓展

我还自己设计另一个国家社科基金数据库的词云一键化分析

科研宝宝的最爱,有需要的可以直接私信我哟,把握好大家的研究方向才是开始最正确的选择

image.png

这个程序涉及到一个网页解码和转码的功能

2020122922453634.png

2020122922461091.png

20201229224644998.png

20201229224701555.png

里面的输入类别都可以自己设计的,所有的输入框都可以自己设置筛选条件!!!!

如果你是科研党,不要它可惜了,哈哈哈哈!!!!!!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python:处理一些格式规范的文字
Python:处理一些格式规范的文字
20 0
SAP UI5 初学者教程之七 - JSON 模型初探试读版
在 Jerry 这篇文章对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发者,向 SAP UI5 开发领域转型的不易,因此我在业余时间设计了这份适合 SAP UI5 初学者的学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。这些知识点可能不像我的 UI5 源码分析系列文章那么深入,但力求浅显易懂,便于 SAP UI5 初学者理解。
29 0
Python编程:FakeRequests一个对 requests 的包装类
Python编程:FakeRequests一个对 requests 的包装类
41 0
深度解密Python工厂类相关模式
认识工厂类相关模式认识工厂类相关模式 1 工厂类相关模式含义工厂方法模式(英语:Factory method pattern)是一种实现了“工厂”概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。
6580 0
深度解密Python单例模式
认识单例模式认识单例模式 1 单例模式含义2 单例模式优点3 单例模式缺点4 单例模式应用 Python实现单例模式Python实现单例模式 1 多种实现方法2 实例分析 总结总结 认识单例模式1.1 单例模式含义单例模式,也叫单子模式,是一种常用的软件设计模式。
1177 0
Python版求数组的最大连续区间
[本文出自天外归云的博客园] 题目:有一个数组,求他的最大(最长)连续区间(数字是连续的区间)。 我的解法,如下: class Finder(object): ''' 判断两个相邻的数字是否连续,若连续: 1.
2414 0
python mysql 单引号字符串过滤
最主要用这个函数,可以处理MySQLdb.escape_string(content). class Guide: def __init__(self): self.time_zone = 7*3600 #设置时区 self.
694 0
+关注
王小王-123
快乐代码,精彩人生!
268
文章
0
问答
文章排行榜
最热
最新