豆瓣《隐秘的角落》评论爬取
引言
我一直是不追电视剧的,一方面觉得剧集太多了没有那么多的时间去消耗,另一方面就是好的电视剧是真的没有几部(贼讨厌古装)。期末考试那段时间,看到微博、朋友圈刷爆了《隐秘的角落》,觉得那些出圈的梗 “我们一起去爬山”,“我还有机会吗”也不过如此。前几天有点无聊,然后打开视频软件,直接热度第一的就是《隐秘的角落》,本来只打算看个开头。哎呀,真香!我竟然一晚上就看了8集。直至现在,我不仅看完了电视剧,就连B站上面的细节解析、幕后花絮都刷了很多。不得不承认,是真的好看!好看的程度体现在了秦昊成为了我现阶段的男神。那么是什么原因导致这部剧能够大火呢,数据不会说谎!
爬取数据
利用 requests + xpath
爬取豆瓣评价。
- 获取页面内容
# 爬取页面 url
douban_url = douban_url = 'https://movie.douban.com/subject/33404425/comments?status=P'
# requests 发送请求
get_response = requests.get(douban_url)
# 将的到的数据转换成文本
get_data = get_response.text
- 分析页面,利用Xpath Helper插件获取用户、评论的内容和评论用户的总数
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
# 解析页面
tree = etree.HTML(get_data)
# 用户
commentator = tree.xpath('/html/body/div[3]/div[1]/div/div[1]/div[4]/div/div[2]/h3/span[2]/a/text()')
# 评论内容
comment_content = tree.xpath('/html/body/div[3]/div[1]/div/div[1]/div[4]/div/div[2]/p/span/text()')
获得多页评论
观察url地址
page_url = 'https://movie.douban.com/subject/33404425/comments?start=20&limit=20&sort=new_score&status=P'
可以发现,下一页的地址start值是上一页值增加20的结果,其余都不发生变化。
# 页面url
page_url = 'https://movie.douban.com/subject/33404425/comments?start={0}&limit=20&sort=new_score&status=P'.format(i*20)
将得到的数据表格化处理并保存
DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表。DataFrame的单元格可以存放数值、字符串等,这和excel表很像,同时DataFrame可以设置列名columns与行名index
name = ['用户', '评论内容']
file = pd.DataFrame(columns=name, data=content)
点击获取 代码
生成词云
解析数据
打开上面保存的文件,将评论内容保存在content里面
with codecs.open(r'./comment_content.cvs', 'r', 'utf-8') as csvfile:content = ''reader = csv.reader(csvfile)i = 0for file in reader:if(i == 0 or i == 1):passelse:content = content + file[1]i += 1# 去除所有评论里面多余的字符content = re.sub('[… “ ” ):《 》?!( 、,,。. \r\n]', '', content)
分析数据
利用jieba库切词,去掉停用的词并统计词频,降序排列
# 切词,用jieba库
segment = jieba.lcut(content)
# 去停用词(文本去噪)
words_df = pd.DataFrame({'segment': segment})
stopwords = pd.read_csv(r"./豆瓣影评/stopwords.txt", index_col=False,quoting=3, sep="\t", names=['stopword'], encoding='utf-8')
words_df = words_df[~words_df.segment.isin(stopwords.stopword)]
# 统计词频、降序排列
words_stat = words_df.groupby('segment').agg(计数=pd.NamedAgg(column='segment', aggfunc='size')).reset_index().sort_values(by='计数', ascending=False)
stopwords.txt 文件下载:http://www.datasoldier.net/archives/636
数据可视化
生成词云,取词频最高的前1000个词
# 做词云
bimg = imread(r'./豆瓣影评/hhh.jpg')
matplotlib.rcParams['figure.figsize'] = (10.0, 6.0)
# 设置中文字体 背景颜色等
wordcloud = WordCloud(font_path='C:/Windows/Fonts/simfang.ttf',mask=bimg, background_color='white', max_font_size=80)
# 字典推导式
word_frequence = {x[0]: x[1] for x in words_stat.head(1000).values} # 取词频最高的前1000个词 (词,词频)->{词:词频}
wordcloud = wordcloud.fit_words(word_frequence)
bimgColors = ImageColorGenerator(bimg)
result = wordcloud.recolor(color_func=bimgColors)
plt.axis("off")
plt.imshow(result)
plt.show()
result.to_file(r'./豆瓣影评/词云.jpg')
词云展示
背景图片是张朝阳哦!
![](/assets/blank.gif)
参考链接:https://www.cnblogs.com/ctsch/p/8590551.html
点击获取 代码
总结
通过生成的词云不难看出剧中演员的塑造能力,剧情的逻辑性和节奏性,故事的细节处理和镜头的质感都是这部国产悬疑改编网剧能够吸引人眼球的原因。当然也期待未来能有更多的好剧出现在大众视野。再次表白我男神秦昊,演技顶呱呱!
完整内容github获取:https://github.com/lemon-l/spider/tree/master/Douban comments
豆瓣《隐秘的角落》评论爬取相关推荐
- scrapy框架下的豆瓣电影评论爬取以及登录,以及生成词云和柱状图
由于豆瓣在今年5月份已经禁止展示所有短评,只展示最热的500条数据,并且在爬取到240条的时候,如果没有登录的话,会提示登录. 因此几天的爬虫,包括豆瓣的自动登录和数据爬取后批量存入pymysql数据 ...
- python爬取网易云音乐_Python 从零开始爬虫(七)——实战:网易云音乐评论爬取(附加密算法)...
前言 某宝评论区已经成功爬取了,jd的也是差不多的方法,说实话也没什么好玩的,我是看上它们分析简单,又没加密才拿来试手的.如果真的要看些有趣的评论的话,我会选择网易云音乐,里面汇聚了哲学家,小说家,s ...
- 豆瓣新书速递数据爬取与简单数据处理 | 豆瓣爬虫 python pandas
豆瓣新书速递数据爬取与简单数据处理 概要 数据爬取 爬取豆瓣平台提供的数据,存储到本地 json 文件. 数据说明 URL 豆瓣新书速推 HTML https://book.douban.com/la ...
- Java网络爬虫--一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库
一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 目录 一步步使用Java网络爬虫技术实现豆瓣读书Top250数据的爬取,并插入数据库 第一步:创建项目,搭建项目结构 p ...
- 大数据信息资料采集:公众号武志红文章评论爬取八爪鱼采集器规则
大数据信息资料采集:公众号武志红文章评论爬取八爪鱼采集器规则 大数据信息资料采集 公众号历史文章采集 公众号评论爬取 微信公众号历史文章导出 抓取微信公众号所有文章. 公众号文章抓取工具 抓取公众号所 ...
- No.2 大众点评评论爬取
大众点评评论爬取 一.简介 网址:http://www.dianping.com/shop/G41gaJfqGBICtiVY 效果:爬取评论 使用框架:selenium.requests.re 难度系 ...
- Discuz 论坛模块全部帖子和评论爬取
Discuz 论坛模块全部帖子和评论爬取 Discuz 是一款由PHP编写的开源论坛 Discuz 官方论坛: https://www.discuz.net/forum.php 要爬取的页面地址: D ...
- Golang实现并发版网络爬虫:豆瓣-电影名人数评分爬取并保存文件
爬取豆瓣电影信息: 双向爬取: 横向:以页为单位.纵向:以一个页面内的条目为单位. 横向: https://movie.douban.com/top250?start=0&filter= 1 ...
- 大数据信息资料采集:文化公众号槽边往事历史文章搜集评论爬取
大数据信息资料采集:文化公众号槽边往事历史文章搜集评论爬取 大数据信息资料采集 公众号历史文章采集 公众号评论爬取 微信公众号历史文章导出 抓取微信公众号所有文章. 公众号文章抓取工具 抓取公众号所有 ...
- 【爬虫实战】评论爬取及词频统计详解
爬虫 前言 aqy评论爬取 请求数据 数据清洗 爬取数据 分词 停用词 绘制统计表 词云绘制 主函数 一些其他问题优化 前言 本项目来自Baidu AI Studio相关python课程. aqy评论 ...
最新文章
- 【教程】2、读取新闻条目
- UNIX高手应该保持的习惯
- 数据库异地多活解决方案
- java反射机制--reflection
- 常用作图与图片处理工具
- CSS3 -webkit-transition(属性渐变)
- 工作中应用计算机,浅谈计算机在我国计工作中的应用与发展.doc
- java 数组写法_java书写、数据类型、数组定义
- JAVA中整数类型数据溢出问题研究
- python文件的基本操作_「Python」 - 文件基本操作
- java.sql.SQLException: Access denied for user ‘‘@‘localhost‘ (using password: NO)报错问题解决
- Qt学习之路_6(Qt局域网聊天软件)
- EditDistance,求两个字符串最小编辑距离,动态规划
- Detours信息泄漏漏洞
- 数据库链接池c3p0配置踩坑
- 保存电脑上的屏保图片
- gradle入门教程
- 一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验
- RXJava之线程控制Scheduler(四),Android面试题
- 数据预处理——归一化标准化
热门文章
- 向SQL Server 中导入长文本
- 纽约2050交通发展战略——高效移动性
- web test IBM Page Detailer / IBM Rational Performance Tester / Web Page Performa
- Matlab矩阵论矩阵分析计算实现(四)求史密斯标准型和约当标准型
- 开源一个自用的Android IM库,基于Netty+TCP+Protobuf实现。
- android大字体桌面,简易桌面老人下载
- 2017年浙江工业大学大学生程序设计迎新赛热身赛-J-Forever97与寄信
- 大学数学学习参考书点评之数学分析部分(转)
- mysql查询上班打卡sql怎么写_sql查询一段时期里每一天所有员工的打卡记录
- MFC在dlg当中添加view