python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...
最近看了一部电影《绣春刀》,里面的剧情感觉还不错,本文爬取的是绣春刀电影的豆瓣影评,1000个用户的短评,共5W多字。用jieba分词,对词语的出现频率进行统计,再通过wordcloud生成词云图。
今天和小伙伴们一起梳理下具体实现的流程,具体源代码已经上传到NLP小白 公众号中,发送“词云图”,即可获取源代码。
先上图为敬,看看豆瓣的网友评论侧重哪个方面。PS:词语出现的频率越多,字体越大
具体流程如下
一、自动化爬取 豆瓣影评
第一步 安装selenium 这是一个自动化测试工具,需要浏览器来配合使用
pip install selenium
第二步 下载 ChromeDriver 这是谷歌浏览器的驱动与 selenium 一起配合使用
找到你chrome 谷歌浏览器的对应的版本驱动 下载即可,本人用的是最新版,即红框位置
解压后 把 chromedriver.exe放到 Python的Scripts目录中即可,本人用的是Anaconda ,所以直接放入Scripts 文件。
安装环境准备好了之后,就可以进行 代码 测试 了。
import time
from selenium import webdriver
movie_url="https://movie.douban.com/subject/24745500/comments"
#绣春刀的评论界面
brower = webdriver.Chrome()
brower.get(movie_url)#启动chrome 浏览器 并跳转到 movie_url 网址
运行即启动chrome浏览器
由于豆瓣用户不登陆只能爬取短评会有限制,所以我们进行用户登录
右击chrome 选择审查元素,查看网页代码的结构
具体代码:
brower.find_element_by_class_name("nav-login").click()
#找到登录按钮 进行自动登录
time.sleep(1) #延时1秒
点击后跳转到登录界面
brower.find_element_by_class_name("account-tab-account").click()
#默认是手机号登录,切换成账号密码登录
time.sleep(1)
找到 用户名和密码的框 对应的ID ,进行自动输入
user_name = 'admin' #这里替换成你的豆瓣用户名
password = 'admin123' #这里替换成你的密码
brower.find_element_by_id("username").clear()
#输入前清空下 用户名
brower.find_element_by_id("username").send_keys(user_name)
#输入用户名
brower.find_element_by_id("password").clear()
brower.find_element_by_id("password").send_keys(password)
当按钮的class 和id 都不好定位的时候 可以选择 copy selector
代码:
brower.find_element_by_css_selector("#account > div.login-wrap > div.login-right > div > div.account-tabcon-start >div.account-form > " "div.account-form-field-submit > a"
"div.account-form-field-submit > a").click()
登录后 出现 滑块验证 人为验证下 就行了,下一节 再细讲如何 自动进行滑块验证
进入短评界面后 找网页布局的规律,评论都在class=”comment” 里面的class=“short”中
然后开始爬取50页的短评,存入short[] 中
代码如下:
#后面开始 读取评论信息
n = 1 #页数
count = 0 #评论数目
i = 50 #设置要爬取的页面总数
short=[]
while True:
try:
results = brower.find_elements_by_class_name('comment')
for result in results:
comment = result.find_element_by_tag_name('p').text #评论内容
short.append(comment + u'\n')
count += 1
print(u"查找到第%d个评论" % count)
brower.find_element_by_class_name('next').click() #点击下一页
print(u'第%d页查找完毕!' % n)
n += 1
time.sleep(5)
i -= 1
print(i)
if (i < 1):
break
except Exception as e:
print(e)
最后短评都存储到short中了,接下来进行写入 xiuchundao.txt中
with open("xiuchundao.txt","w+",encoding='utf-8') as f:
# 把评论 写入xiuchundao.txt
for q in short:
f.write(q) #自带文件关闭功能,不需要再写f.close()
至此,短评内容都已经存在txt中了
二、生成 词云图
首先 安装下 需要用的jieba 分词库和WordCloud
相信小伙伴们经常遇到 pip安装失败,大部分原因都是因为,直接pip 下载的软件源是国外的,下载速度很慢,经常会下载断掉。为了解决这个问题,我们可以用国内的镜像地址。
阿里云 http://mirrors.aliyun.com/pypi/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
豆瓣(douban) http://pypi.douban.com/simple
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple
1、临时使用国外镜像源,添加“-i”参数
安装 jieba 分词库
pip install -i http://pypi.douban.com/simple/ jieba
安装 WordCloud
pip install -i http://pypi.douban.com/simple/ WordCloud
2.具体生成词云图代码
from PIL import Image
from wordcloud import WordCloud, ImageColorGenerato
import matplotlib.pyplot as plt
import numpy as np
import jieba
def GetWordCloud():
path_txt = 'xiuchundao.txt' #刚才的评论文件
path_img = "am3.png" #背景图片
f = open(path_txt, 'r', encoding='UTF-8').read()
background_image = np.array(Image.open(path_img))
#结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云
#Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
cut_text = " ".join(jieba.cut(f))
wc = WordCloud(
#设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
font_path="C:/Windows/Fonts/STXINGKA.TTF",#生成云图的字体
width=1000,
height=1200,#生成图片的大小
min_font_size=3,
background_color="black",
# mask参数=图片背景,必须要写上,另外有mask参数再设定宽高是无效的
mask=background_image,
).generate(cut_text)
#生成颜色值
image_colors = ImageColorGenerator(background_image)
#下面代码表示显示图片
plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
plt.axis("off")
plt.show()
wc.to_file("shuchu.jpg") #生成图片保存在shuchu.jpg
if __name__ == '__main__':
GetWordCloud()
运行效果如图
小伙伴们 这整个流程走下来 是不是很简单呢。详细源代码和背景图片,公众号,回复 “词云图”,即可获取。赶快来试试吧,下一期,推送,如何爬取bi站的弹幕,生成词云图。期待你们的关注,有啥问题都可以在文章后面,给我留言。
python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...相关推荐
- python爬取豆瓣影评生成词云的课程设计报告_简单爬取《小丑》电影豆瓣短评生成词云...
导语 在前段时间看了杰昆菲尼克斯的小丑电影,心里很好奇大部分观众看完这部电影之后对此有什么评价,然后看了看豆瓣短评之后,觉得通过python把短评中出现最多的单词提取出来,做成一张词云,看看这部电影给 ...
- 图书管理系统python代码课程设计报告_python代码实现图书管理系统
本文实例为大家分享了python代码实现图书管理系统的具体代码,供大家参考,具体内容如下 图书管理系统 功能简介 添加图书时,图书ID不能重复,图书名可重复 删除,查询,修改功能,输入图书名之后提供所 ...
- python实现通讯录功能课程设计报告_Python实现通讯录功能
说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间. 该程序实现了用户的增,删,改,查,主要用到sqlite3模块.对于该模块的知识点,请查看我的另 ...
- python猜单词游戏实验原理_猜单词游戏课程设计报告
告 一 . 程 序 功 能 一个猜单词游戏.两人进行游戏时,由一个玩家给出一个单词, 在人与计算机游戏时候, 由计算机给出一个单词, 另一个玩家根据组 成单词的字母个数猜出单词,猜的次数可以指定,若猜 ...
- python学生考勤管理系统设计_学生考勤管理系统课程设计报告1
一.需求分析 功能需求: 1 .录入学生的缺勤记录: 2 .修改某个学生的缺勤记录: 3 .查询某个学生的缺勤情况: 4 .统计某段时间内,缺勤学生学号及缺勤次数,按缺勤权值统计学生的负分值,并能进行 ...
- 计算机程序数据随机变化,计算机程序编程课程设计报告(马尔可夫链算法生成随机可读文本)...
<计算机程序编程课程设计报告(马尔可夫链算法生成随机可读文本)>由会员分享,可在线阅读,更多相关<计算机程序编程课程设计报告(马尔可夫链算法生成随机可读文本)(15页珍藏版)> ...
- python贪吃蛇代码课程设计_c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇...
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8846529.html 注:本文档需与c语言课程设计之贪吃蛇文档配套使用.c语言实现贪吃蛇代码可 ...
- 提升C语言程序运行效率 马尔可夫,计算机程序编程课程设计报告(马尔可夫链算法生成随机可读文本).doc...
PAGE 1 计算机程序编程课程设计报告 (马尔可夫链算法生成随机可读文本) 引言: 马尔可夫链的数学背景: 马尔可夫链,因安德烈?马尔可夫(A.A.Markov,1856-1922)得名 ,是数学随 ...
- 【lidar】基于YOLO的3D目标检测(激光雷达点云)课程设计
基于YOLO的3D目标检测(激光雷达点云)课程设计 代码+数据集下载地址:下载地址
最新文章
- OC高效率52之理解消息转发机制
- memcache运行机制(转)
- awk命令扩展使用操作
- 《复杂》读书笔记(part5)--复杂性度量
- 【转载】Linux关机命令详解
- sdut 2074 区间覆盖问题(贪心)
- html头部中各式各样的meta
- STM32官方固件库
- 走,去抖音上发财!抖音承诺未来一年要帮一千万创作者赚到钱
- C++基础与深度解析第八章:动态内存管理
- Code-First Development with Entity Framework 4
- Java多线程(一)——多线程实现方法和生命周期
- 解读Depth Map Prediction from a Single Image using a Multi-Scale Deep Network (2)
- LwIP 协议栈之 udp 协议解析
- java私塾设计模式_Java私塾:研磨设计模式 之 访问者模式(Visitor)
- Eighth season eighth episode,Monica got a stripper in her bachelorette party??????
- HTML网页上播放AVI视频代码示例
- 重拾Java基础知识:枚举
- 解决 java poi 导出Excel 无法打开问题
- 到底什么是云原生(Cloud Native)?什么是CNCF(Cloud Native Computing Foundation)