powerbi python词云图_Python 练手项目: 抓取豆瓣陈情令评论,并制作词云图
一、项目简介
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.生成词云展示
powerbi python词云图_Python 练手项目: 抓取豆瓣陈情令评论,并制作词云图相关推荐
- python 制作高斯mask_Python3 练手项目: 抓取豆瓣陈情令评论,并制作词云图
(点击上方公众号,可快速关注一起学Python) 链接: https://blog.csdn.net/weixin_43930694/article/details/98334465 一.项目简介 1 ...
- 利用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的5大练手项目,你练了么?
在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? 首先有两点建议: 最好不要写太应用的程序练手,要思考什么更像是知识,老只会写写爬虫是无用的,但是完全不写也不行. 对于练手的程序,要注意简化 ...
- python新手程序_推荐:一个适合于Python新手的入门练手项目
随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...
- python新手入门项目推荐_推荐:一个适合于Python新手的入门练手项目
随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...
最新文章
- 【idea】Springboot整合jpa
- 编程语言也有环保排队?垫底的居然是它...
- solr源码分析之数据导入DataImporter追溯。
- Logstash同步mysql一对多数据到ES(踩坑日记系列)
- 基于用例点来度量软件规模并管理进度 之二
- java取模运算_Java的四则运算符与取模运算符
- 作为研发工程师,不可不知的运维技能武器库,这些你知道吗
- testflight怎么做版本更新_《动物森友会》万圣节版本更新后,别忘了做这五件事情...
- RxJava -- 从 create 开始 (一)
- webstorm小程序插件和中文插件
- PPT文件太大怎么办?如何压缩PPT?这几招帮你搞定
- 运营Tumblr的几个建议-教你成为tumblr达人
- 【WiFi】hostapd 配置80M频宽某些信道启动失败问题分析及解决
- c语言tab什么意思_C语言入门学好这一篇就足够了!C语言所有的知识点
- R语言ggplot2可视化:使用geom_step可视化阶梯图、阶梯线图、可视化分组阶梯线图
- 裴蜀定理(Noi Color)应用
- 计算机信息专业考研院校排名,2017年电子信息工程专业考研院校排名
- java csv 数组_使用csv文件的输入填充结构数组
- 制作CentOS系统启动盘(U盘)
- ​力扣解法汇总1728-猫和老鼠 II
热门文章
- matlab 1 3倍频分析,[转载]1/3倍频程及Matlab程序实现
- SQL优化理解的一点方法
- 三星在美最高法院吐苦水,苹果设计专利索赔太多
- [20170302]什么是fuzzy.txt
- iOS.ReactNative-3-about-viewmanager-uimanager-and-bridgemodule
- 理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]
- PHP 直接在共享内存中存储数据集
- Qt 的udpSocket通信
- 数据库(mysql)基本语句操作
- 人力资源大数据公司_大数据与人力资源相结合,平衡透明度和隐私