python 制作高斯mask_Python3 练手项目: 抓取豆瓣陈情令评论,并制作词云图
(点击上方公众号,可快速关注一起学Python)
链接:
https://blog.csdn.net/weixin_43930694/article/details/98334465
一、项目简介
1.内容:循环抓取豆瓣影评中所有观众对《陈情令》的评论,存储在文本文档中,并运用可视化库--词云对其进行分析。
2.目标网站:
https://movie.douban.com/subject/27195020/comments?start=
3.使用软件:pycharm
4.使用 python3.7 版本
5.涉及的python类库:requests、lxml、wordcloud、numpy、PIL、jieba
二、具体思路
1.安装、导入相应的类库(本机已安装类库)
import requestsfrom lxml import etree #xpathfrom wordcloud import WordCloudimport PIL.Image as image #引入读取图片的工具import numpy as npimport jieba # 分词
2.确定网页,获取请求头,解决反爬机制,并且循环获取所有页面
#获取html源代码def getPage(url): headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64)"" AppleWebKit/537.36 (KHTML, like Gecko)"" Chrome/63.0.3239.132 Safari/537.36" } response = requests.get(url,headers = headers).textreturn response
#循环获得所有页面的urldef all_page(): base_url = "https://movie.douban.com/subject/27195020/comments?start="#列表存放所有的网页,共10页 urllist = []for page in range(0,200,20): allurl = base_url+str(page) urllist.append(allurl)return urllist
3.运用xpath获取短评
#解析网页def parse():#列表存放所有的短评 all_comment = [] number = 1for url in all_page():#初始化 html = etree.HTML(getPage(url))#短评 comment = html.xpath('//div[@]//p/span/text()') all_comment.append(comment) print('第'+str(number)+'页解析并保存成功') number += 1return all_comment
4.存入txt文档
#保存为txtdef save_to_txt(): result = parse()for i in range(len(result)):with open('陈情令评论集.txt','a+',encoding='utf-8') as f: f.write(str(result[i])+'\n') #按行存储每一页的数据 f.close()
5.将文档的短评进行分词
#将爬取的文档进行分词def trans_CN(text): word_list = jieba.cut(text)#分词后在单独个体之间加上空格 result = " ".join(word_list)return result
6.制作词云
#制作词云def getWordCloud(): path_txt = "陈情令评论集.txt" #文档 path_jpg = "1.jpg" #词云形状图片 path_font = "C:\\Windows\\Fonts\\msyh.ttc" #字体
text = open(path_txt,encoding='utf-8').read()
#剔除无关字 text = text.replace("真的"," ") text = text.replace("什么", " ") text = text.replace("但是", " ") text = text.replace("而且", " ") text = text.replace("那么", " ") text = text.replace("就是", " ") text = text.replace("可以", " ") text = text.replace("不是", " ")
text = trans_CN(text) mask = np.array(image.open(path_jpg)) #词云图案 wordcloud = WordCloud( background_color='white', #词云背景颜色 mask=mask, scale=15, max_font_size=80, font_path=path_font ).generate(text)
wordcloud.to_file('陈情令评论词云.jpg')
三、代码生成
#!/usr/bin/env python#-*- coding:utf-8 -*-#author : Only time:2019/8/3 0002
import requestsfrom lxml import etree #xpathfrom wordcloud import WordCloudimport PIL.Image as image #引入读取图片的工具import numpy as npimport jieba # 分词
#获取html源代码def getPage(url): headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64)"" AppleWebKit/537.36 (KHTML, like Gecko)"" Chrome/63.0.3239.132 Safari/537.36" } response = requests.get(url,headers = headers).textreturn response
#获得所有页面def all_page(): base_url = "https://movie.douban.com/subject/27195020/comments?start="#列表存放所有的网页,共10页 urllist = []for page in range(0,200,20): allurl = base_url+str(page) urllist.append(allurl)return urllist
#解析网页def parse():#列表存放所有的短评 all_comment = [] number = 1for url in all_page():#初始化 html = etree.HTML(getPage(url))#短评 comment = html.xpath('//div[@]//p/span/text()') all_comment.append(comment) print('第'+str(number)+'页解析并保存成功') number += 1return all_comment
#保存为txtdef save_to_txt(): result = parse()for i in range(len(result)):with open('陈情令评论集.txt','a+',encoding='utf-8') as f: f.write(str(result[i])+'\n') #按行存储每一页的数据 f.close()
#将爬取的文档进行分词def trans_CN(text): word_list = jieba.cut(text)#分词后在单独个体之间加上空格 result = " ".join(word_list)return result
#制作词云def getWordCloud(): path_txt = "陈情令评论集.txt" path_jpg = "1.jpg" path_font = "C:\\Windows\\Fonts\\msyh.ttc"
text = open(path_txt,encoding='utf-8').read()
#剔除无关字 text = text.replace("真的"," ") text = text.replace("什么", " ") text = text.replace("但是", " ") text = text.replace("而且", " ") text = text.replace("那么", " ") text = text.replace("就是", " ") text = text.replace("可以", " ") text = text.replace("不是", " ")
text = trans_CN(text) mask = np.array(image.open(path_jpg)) #词云背景图案 wordcloud = WordCloud( background_color='white', mask=mask, scale=15, max_font_size=80, font_path=path_font ).generate(text) wordcloud.to_file('陈情令评论词云.jpg')
#主函数if __name__ == '__main__': save_to_txt() print('所有页面保存成功') getWordCloud() print('词云制作成功')
四、结果
1.运行结果
2.生成的短评文档内容
3.生成词云展示
(完)
看完本文有收获?请转发分享给更多人
关注「Python那些事」,做全栈开发工程师
点「在看」的人都变好看了哦
python 制作高斯mask_Python3 练手项目: 抓取豆瓣陈情令评论,并制作词云图相关推荐
- powerbi python词云图_Python 练手项目: 抓取豆瓣陈情令评论,并制作词云图
一.项目简介 1.内容:循环抓取豆瓣影评中所有观众对<陈情令>的评论,存储在文本文档中,并运用可视化库--词云对其进行分析. 2.目标网站: https://movie.douban.co ...
- 利用python爬虫抓取虎扑PUBG论坛帖子并制作词云图
作为一个PUBG迷,刷论坛是每天必不可少的事,上面有很多技术贴和职业比赛的帖子,突发奇想,想知道论坛里谈论最多的是什么,便做了一个爬虫爬取了论坛上最新的帖子标题和部分回复,然后利用jieba与word ...
- python新手项目-推荐:一个适合于Python新手的入门练手项目
原标题:推荐:一个适合于Python新手的入门练手项目 随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人 ...
- 推荐 Python 十大经典练手项目,让你的 Python 技能点全亮!
前言:如果有人问:"Python还火吗?""当然,很火.""哪能火多久呢?""不知道." 技术发展到现在衍生出许多种编程 ...
- 推荐Python十大经典练手项目,让你的Python技能点全亮!
前言:如果有人问:"Python还火吗?""当然,很火.""哪能火多久呢?""不知道." 技术发展到现在衍生出许多种编程 ...
- 一个适合于Python 初学者的入门练手项目
随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...
- python新手小项目-推荐:一个适合于Python新手的入门练手项目
随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...
- python适合做什么生意_适合Python的5大练手项目,你练了么?
在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? 首先有两点建议: 最好不要写太应用的程序练手,要思考什么更像是知识,老只会写写爬虫是无用的,但是完全不写也不行. 对于练手的程序,要注意简化 ...
- python新手程序_推荐:一个适合于Python新手的入门练手项目
随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...
最新文章
- NSString字符串常用知识点
- 常量元素记忆口诀_人体中的常量元素与微量元素
- MySQL的Redolog/Undolog/binlog日志
- 使用 KubernetesClient 操作 kubernetes
- Hibernate关联关系映射-----基于连接表的单向一对多映射配置
- 浅谈html的语义化和一些简单优化,浅谈HTML的语义化和一些简单优化
- XML 在SQLServer中的使用
- iOS底层探索之多线程(十三)—锁的种类你知多少?
- 2018最新hadoop服务器环境配置教程(附详细步骤)
- nodejs连接postgresql_PostgreSQL 使用 node-postgres 在 node.js 中的应用
- matlab中图例的字怎么改,matlab中legend函数在添加图例时的使用方法
- Java、python实现啊哈算法 —— chapter3 枚举 炸弹人
- 关闭cidaemon进程的方法
- 使用DISM启用或禁用Windows功能
- 蚂蚁开源 - 聚沙成塔,相信社区的力量 | ChinaOSC
- 大数据与算法系列之算法性能分析
- 时间触发嵌入式系统设计模式 读书笔记
- python批量查询两地的行驶距离
- 鸿蒙开发板怎么玩?Neptune开发教程---OpenHarmony开发体验-环境搭建-编译-烧录
- APP、小程序、H5