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

前景引入

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

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

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

项目简介

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

项目思路与功能介绍

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

Python爬取全网文字并词云分析(全程一键化!)_第1张图片
2.这么多的书籍,够你看了吧,如果你不想看,想知道这本书主要讲的是什么,出现哪些高频词,最终也会帮助你理解和了解这篇文章的主要内容。

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

项目实现

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

Python爬取全网文字并词云分析(全程一键化!)_第2张图片
不会的请看这篇文章,有详细的介绍,要是看不懂我给你安装!绝对可以安装好的~

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本小程序只针对:网址有效,里面有大量的古今中外名著小说!!!\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.输入网址和保存路径,以及爬取的章节数
Python爬取全网文字并词云分析(全程一键化!)_第3张图片2.智能爬虫开启运行

Python爬取全网文字并词云分析(全程一键化!)_第4张图片

Python爬取全网文字并词云分析(全程一键化!)_第5张图片

3.智能算法开启

Python爬取全网文字并词云分析(全程一键化!)_第6张图片Python爬取全网文字并词云分析(全程一键化!)_第7张图片
4.效果展示

桌面自动出现,点击网页HTML即可展示词云,还可以自己下载,这就是pyecharts库的特点
在这里插入图片描述Python爬取全网文字并词云分析(全程一键化!)_第8张图片
Python爬取全网文字并词云分析(全程一键化!)_第9张图片

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

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

项目拓展

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

科研宝宝的最爱,有需要的可以直接私信我哟,把握好大家的研究方向才是开始最正确的选择
Python爬取全网文字并词云分析(全程一键化!)_第10张图片这个程序涉及到一个网页解码和转码的功能
Python爬取全网文字并词云分析(全程一键化!)_第11张图片
Python爬取全网文字并词云分析(全程一键化!)_第12张图片Python爬取全网文字并词云分析(全程一键化!)_第13张图片Python爬取全网文字并词云分析(全程一键化!)_第14张图片

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

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

每文一语

无法预测的未来,才会充满期待

你可能感兴趣的:(Python爬虫实战系列,Python基础项目和算法系列,词云图,爬虫书籍,Python,算法,自动化爬虫)