爬取某瓣电影中你好,李焕英电影的短评并生成词云
要爬取的目标链接:
项目结构:
其中img.png是背景图片,lhz.py是Python代码,lhz.text是爬取到的短评,msyh.ttc是字体文件,new_inclound.png是生成的词云图片。
字体文件和背景图片下载链接
提取码:8888
下面是完整的代码:
import requests # 请求库,需要安装
from fake_useragent import UserAgent # 构造user—Agent的库,需要安装
from lxml import etree # 使用xpath()需要导入该库,需要安装
import time # 使用time.sleep()使程序睡眠一段时间需要导入该库
import jieba # 中文分词库,需要安装
import imageio # 读取图片需要该库,需要安装
import wordcloud # 制作词云的库,需要安装
from typing import NoReturn # 类型标记的库,需要安装class lhz():def __init__(self):"""初始化"""self.next_page_url = "https://movie.douban.com/subject" \"/34841067/comments?start=0&limit=20&status=P&sort=new_score"self.b = Truedef get_all_comment(self, url: str) -> NoReturn:"""获取页面中的所有短评url:要提取短评的链接"""response = requests.get(url, headers={'user-agent': UserAgent().chrome})e = etree.HTML(response.text, etree.HTMLParser())comm = e.xpath('//span[@class="short"]/text()') # 使用xpath提取短评,结果是列表with open('lhz.text', mode='a', encoding='utf-8') as f:# 将列表中的每一个短评处理后写入文件中for i in comm:i.replace('\n', '')i += '\n'f.write(i)if self.b:# 使用xpath提取第一个页面中下一个页面的链接next_url = e.xpath('//div[@id="paginator"]/a/@href')self.b = Falseelse:# 使用xpath提取非第一个页面中的下一个页面的链接next_url = e.xpath('//div[@id="paginator"]/a[3]/@href')if next_url: # 如果提取到的下一个页面的链接不为空就递归提取time.sleep(0.5) # 程序睡眠0.5秒# 构造下一个页面的链接next_url = ''.join(next_url).replace('&percent_type=', '')self.next_page_url = "https://movie.douban.com/subject" \"/34841067/comments{}".format(next_url)self.get_all_comment(self.next_page_url) # 递归调用time.sleep(1)def make_clound(self) -> NoReturn:"""绘制词云图"""with open('lhz.text', mode='r', encoding='utf-8') as f: # 读取短评文件中的数据txt = f.read()txt_list = jieba.cut(txt) # 分词string = ' '.join(txt_list) # 分词后再使用空格它们重新连接成字符串img = imageio.imread('img.png') # 读取图片wc = wordcloud.WordCloud( # 配置词云参数width=1500, # 词云图片的宽,单位是像素height=1000, # 词云图片的高background_color='black', # 背景颜色font_path='msyh.ttc', # 字体文件的路径mask=img, # 除白色部分之外的用来绘制词云scale=10, # 按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍stopwords={',', '.', ',', '。', '!', '?', '?'}, # 设置停用词)wc.generate(string) # 生成词云wc.to_file('new_inclound.png') # 将词云保存到文件中if __name__ == '__main__':"""程序入口"""lhz = lhz()lhz.get_all_comment(lhz.next_page_url)lhz.make_clound()
上面用到了许多第三方库,大家需要使用pip安装,同时也需要注意你的字体文件路径和背景图片路径可能和我的不一样,要改为自己的。
同时,由于豆瓣有反爬措施,爬取到200多条时就需要登录,所以短评只有200多条,但这足够了!
下面是我的运行结果:
爬取某瓣电影中你好,李焕英电影的短评并生成词云相关推荐
- Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析
爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: ...
- 爬取《你好,李焕英》影评,并生成词云图
自学了python爬虫,最近在实践,就拿<你好,李焕英>的豆瓣影评来试试手吧! 思路: 首先是爬取豆瓣影评的短评,保存下来 豆瓣影评每页显示20条评论,我爬取了前面50页的评论,先浏览找到 ...
- Python爬取《你好李焕英》猫眼实时票房
Python爬取<你好李焕英>豆瓣短评并基于SnowNLP做情感分析 Python爬取你好李焕英豆瓣短评生成词云 Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词 ...
- Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图
词云图: 爬取过程: 你好,李焕英 短评的URL: https://movie.douban.com/subject/34841067/comments?start=20&limit=20&a ...
- Python爬取唐人街探案3豆瓣短评并生成词云
爬取唐人街探案3短评过程 要爬取的URL: https://movie.douban.com/subject/27619748/comments?start=20&limit=20&s ...
- 你好李焕英票房54亿,出品人能分多少,网友:投资水门桥能赚多少
2021年春节档,你好李焕英在大片云集的电影市场脱颖而出,然而这部由贾玲导演的小成本电影,竟然逆袭成为了票房第一,实力赶超战狼2,哪吒之魔童降世这个火遍全国的电影,竟然甘拜下风!大多数网友不淡定了,这 ...
- 《你好李焕英》票房超《神奇女侠》,贾玲成全球票房最高女导演
4月6日消息,据猫眼专业版数据显示,4月6日10时,<你好,李焕英>累计票房达到53.95亿元,超过<神奇女侠>(8.22亿美元),贾玲成为全球票房最高女导演. 此前,< ...
- Python爬取你好李焕英豆瓣短评生成词云
爬取过程: 你好,李焕英 短评的URL: https://movie.douban.com/subject/34841067/comments?start=20&limit=20&st ...
- python爬取三国演义文本,统计三国演义中出场次数前30的人物,并生成词云、图表
目录 1.目标 2.码前须知 3.操作流程 4.完整代码 5.总结 1.目标 python爬取三国演义,生成词云.图表 2.码前须知 项目目标:三国人物名称及出现次数-----数据统计分析 提出问题: ...
最新文章
- KDEWin Installer 0.9.8-1发布
- 【Android 逆向】Frida 框架 ( Frida 框架使用环境 | Frida 框架作用 | Frida 框架模块 )
- Redis之慢查询分析
- c语言getchar函数_C语言中带有示例的getchar()函数
- HDU 4099 Revenge of Fibonacci (数学+字典数)
- Android studio Mac 版 Plugin Error Plugin “GsonFormat4DataBinding“ is incompatible
- Geohash介绍及针对具体需求的改良
- python爬取豆瓣书籍_Python爬取豆瓣读书
- Python自动发送微信消息
- 菜鸟网管的入门之路-第一章、网络及硬件篇(1)
- 达摩院量子计算机叫什么,刚刚,阿里巴巴达摩院宣布研制出全球最强量子电路模拟器...
- VBS对Excel导入bas宏文件
- python打开文件写入内容_python-11 文件的打开和写入
- matlab复杂噪声产生实验报告,基于小波信号的噪声消除matlab实验报告.docx
- 矩阵变换器MATLAB仿真,其他仿真模型也可 图中为三相矩阵 变换器仿真模型及其输入输出电流波形
- 阀门定位器常见的六大故障
- 弘辽科技:“拼夕夕”华丽变装为“拼爹爹”的成功秘诀
- 关于前端的HTML+CSS基础知识汇总(较为全面)
- Lind.DDD.Manage项目核心技术分享
- Linux 部署安装禅道教程