python 豆瓣评论数据分析_Python爬虫实战案例:豆瓣影评大数据分析报告之网页分析...
个人希望,通过这个完整的爬虫案例(预计总共4篇短文),能够让爬虫小白学会怎么做爬虫的开发,所以在高手们看来,会有很多浅显的废话,如果觉得啰嗦,可以跳过一些内容~
上一篇文章给大家简单介绍了Python做爬虫所需要的环境、豆瓣影评分析的步骤以及豆瓣影评分析报告。本文将介绍制作影评分析的第一步:网页分析。以往的教程通常会忽略这一步,直接告诉怎么做,我希望多分享一些,便于大家尽快熟悉怎么从网页上爬数据。
以往我们做得比较多的分析,基础数据一般来自于企业内部的数据库所存储数据(通常我们称之为结构化数据),或者是来自于手工文档存储的有一定格式的数据文件(通常称之为半结构化数据)。而今天我们要做的数据分析,数据基础来自于网页数据,可以认为其是非结构化数据。非结构化数据的采集,和前两者的区别在于,你需要从一堆看似无规律的数据中找出有规律的数据,然后再按照需求来处理。
回到起点,我们要对豆瓣影评进行分析,豆瓣影评所涉及的网页有许多,每页上的文字及图片更是数不胜数。怎么才能让大数据分析报告更有针对性、更准确呢?难道真要从大海里捞一堆垃圾,然后再从垃圾中寻找出规律么?
过往的工作经历,告诉我,这么瞎干的话,是要累死人不赔命的。静下心来理一理工作思路。还是和以前一样,先理个大的步骤出来:
报表需求数据统计数据需求豆瓣模块网页分析
按顺序走就好了,和以前做项目区别不大嘛~
报表需求:如前文所述,我们需要展现的报表包括电影评分排名表、分区域电影热度表、电影热度(评论数量)排名表、电影词频分析表;
数据统计:电影评分、电影热度、分区域电影热度、电影评论
数据需求:电影名称、电影ID、电影评分、电影评论数、电影评论文字、电影区域。当然你还可以拿其他的一些数据备用,比如导演、演员、上映时间、片长等等。
OK,搞清楚数据需求,下一步要做的就是对豆瓣网电影模块进行分析,在哪里可以拿到我们所需要的数据。
限于数据要求,我们本次就只对正在热映的电影数据进行抓取和分析。网页路径为:豆瓣电影首页——>全部正在热映(https://movie.douban.com/cinema/nowplaying/chengdu/,我在成都,所以系统默认是成都目前热映的电影页面,就是它了)。就下面这个页面。
接下来,是到了分析网页数据的时候了。在刚才的网页页面上,按下“F12”键,进入该网页的开发者工具部分,其实就是形成网页的元素及代码。相信做过网页前端的朋友都清楚,没做过的也没关系,在网上找找资料看一看就明白,这儿就不展开来说了。
开发者工具——>调试程序,你看到的就是网页源码,如下图:
现在我们开始查找我们要的数据。举个例子更容易懂些,比如网页上的电影名称“狂暴巨兽”,我们需要看看如何在网页中找到。在开发者工具的右上角输入“
狂暴巨兽
”,然后回车查找,看到如下信息:
大家有点明白没?正在热映的电影《狂暴巨兽》,在网页背后的信息(姑且这么理解哈)就是这样存起来的。关于HTML页面的结构和语言,本文就不详细阐述了,有兴趣的朋友可以自行研究哈。下面将尽可能的用小白文而不是IT语言,把我们要抓取的内容所涉及的内容给阐述清除,做过Web前端的朋友应该可以直接忽略这一段了。
我们所看到的Web页面,其背后是由多层容器嵌套而成,你可以想象成超市里买的组合装保鲜盒,大的套小的,小的再套小的,每个容器里装的就是我们在网页上看到的内容。容器有个官方名称叫“标签”(英文tag)。上图看到的《头号玩家》的信息,包括演员啦、导演啦、地区啦等等,都是被装在
...
这个标签中的。对了,通常标签会是成双成对出现,有开始有结束,比如也可以写成简化版的
。只要通过开始结束标签,你就能很容易分清楚容器包含的内容。记住咯,容器是可以嵌套的,里三层外三层,我们要做的就是通过抽丝剥茧,将需要的数据给扒拉出来。
OK,找到最底层数据了,开始向外扒拉:
1、在
标签外面,是
标签,该标签有一个属性“class='lists'”,记住了,后续我们的程序会用到的哈~
2、继续往外扒拉,是属性为“class='mod-bd'”的div标签
3、继续往外扒拉,依然是div标签,只是属性变成了“id='nowplaying'”,这个单词熟悉不?好像是“正在上映”哦,哈哈,得来完全不费工夫啊
4、额外还得提一个,就是图下方的href='...',那就是每部电影详细信息的链接地址,这个也要扒拉下来,就靠它在程序里进到下一步处理咯
在开发者工具,滚动条往下拉一拉,另一部电影《头号玩家》的信息也出来了。
继续往下拉,一部一部电影都出来了,是不是看起来特别像我们熟悉的结构化数据了啊,电影ID、电影名、评分、上映时间、片长、地区、导演、演员、点评数、地址等等。我们把一部部电影的数据存起来,是不是就是我们熟悉的关系型数据模型了呢。终于回到我们熟悉的情景了。
看明白没?没明白倒回去再瞅瞅,看明白了我们往下吧。。。刚才只是看到了电影的基础信息,我们最想要的评论还没看到呢,评论在哪里呢?在网页上点击电影缩略图,会跳转到电影详细页面,其实呢,网址就是上面扒拉下来的href啦。往下啦,看到我们需要的评论了。。。
继续上一个页面的动作,一言不合就按F12键。。。以后你们会上瘾的,打开网页就想按F12键。。。一样的,在查询栏输入“全部 5884 条”,记得数字前后有空格,不然查不到的。
找到了吧,记住其前后的标签哈。大家多尝试,我就不一个一个列了。下一步是找到影迷对电影的评论了。点击“更多短评”,跳到详细评论页面:
详细评论每页只有20条,所以要获得更多的评论,需要翻页啦。怎么在程序里实现翻页?请点击“后一页”,跳转后仔细看IE地址栏中的地址:https://movie.douban.com/subject/26430636/comments?start=20&limit=20&sort=new_score&status=P&percent_type=,中间的start=20以及limit=20,就是从第20条开始,每页显示20条,明白了么?未来在程序中,你需要自动改变start的数字来打开详细评论网页。
下一步,继续获取评论数据,依然是F12,没创意。网页上找个影迷的昵称,输入查找,看到了评论数据所在的位置和标签。
OK,我们已经把我们想要的数据都找到了,大家学会了怎么在网页上找自己想要的内容了么?不光是豆瓣哦,其他网站也可以的,比如看小说的网站,先把所有小说扒拉下来再慢慢看,甚至于电影,你都可以的。当然,涉及版权的问题,大家要注意的哈;涉及肾的问题,大家就自己保重了哈~
今天我们主要就讲了怎么样获取数据需求,并手工去扒拉所需数据信息,流程像不像以前我们做企业管理报表的数据需求及满足度分析啊?大家很多时候可以触类旁通的。下一篇,我给大家讲解在Python中,怎么样获取、分析并读取网页上所需的数据。
python 豆瓣评论数据分析_Python爬虫实战案例:豆瓣影评大数据分析报告之网页分析...相关推荐
- python爬取喜马拉雅_Python爬虫实战案例之爬取喜马拉雅音频数据详解
这篇文章我们来讲一下在网站建设中,Python爬虫实战案例之爬取喜马拉雅音频数据详解.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 前言 喜马拉雅是专业的音频分享平台,汇集 ...
- python录音详解_Python爬虫实战案例:取喜马拉雅音频数据详解
前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一 ...
- python爬虫豆瓣评论论文_Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析...
Date的那一大堆事儿--1 String perfTimeStr = "";// 统一设置日历格式 Calendar calendar = Calendar.getInstanc ...
- python实例豆瓣音乐代码_Python爬虫实战(3)-爬取豆瓣音乐Top250数据(超详细
前言 首先我们先来回忆一下上两篇爬虫实战文章: 第一篇:讲到了requests和bs4和一些网页基本操作. 第二篇:用到了正则表达式-re模块 今天我们用lxml库和xpath语法来爬虫实战. 1.安 ...
- python二手交易平台代码_PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)...
说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...
- python文件审计系统_Python代码审计实战案例总结之CRLF和任意文件读取
介绍 Python代码审计方法多种多样,但是总而言之是根据前人思路的迁移融合扩展而形成.目前Python代码审计思路,呈现分散和多样的趋势.Python微薄研发经验以及结合实际遇到的思路和技巧进行总结 ...
- python爬网易新闻_Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧
Python爬虫实战教程:爬取网易新闻:爬虫精选 高手技巧 发布时间:2020-02-21 17:42:43 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有, ...
- python喜马拉雅_Python爬虫实战案例:取喜马拉雅音频数据详解!
前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一 ...
- python爬虫豆瓣电影评价_Python 爬虫实战(1):分析豆瓣中最新电影的影评
目标总览 主要做了三件事: 抓取网页数据 清理数据 用词云进行展示 使用的python版本是3.6 一.抓取网页数据 第一步要对网页进行访问,python中使用的是urllib库.代码如下: from ...
最新文章
- SQL面试题: 数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列 ,当B列大于C列时选择B列否则选择C列 ,...
- win7 系统盘下AppData文件夹中Local和Roaming分别有什么作用?
- Linux查看本机外网ip
- html中嵌入iframe进行父子页面参数传递
- python 的几个内置函数(lambda ,zip, filter, map, reduce )用法
- HTML中body内常用标签
- 工业机器人云监控与运维方案
- Unity3D插件之DoTween
- C语言斐波那契数列部分问题程序求解过程,两种思想
- 【矩阵乘法】外部矩阵乘法
- Oracle DB 数据库维护
- APP界面设计规范:如何定义视觉规范
- c语言程序 计算离高考天数,用c++程序计算一个孩子从出生到高考需要多少天
- VUE的两种跳转push和replace对比区别
- Mockups知识点
- AircraftWar(pygame)
- R语言ggplot2 | 循环画图及导出
- 1117. 单词接龙
- ckplayer html5直播rtmp,标准(精简)只调用HTML5-VIDEO方式-ckplayer使用方法
- BFD与OSPF联动
热门文章
- C语言断言assert()函数
- 如何在C语言里调用opencv C++函数?
- opencv python 图像测试上采样(升采样)(cv2.pyrUp()) 下采样(cv2.pyrDown()) 池化 滑动窗口(BorderTypes)
- python opencv imshow()显示窗口中文字符出现乱码 解决方案:将utf-8转换为gbk(未能完全解决)
- Intel Realsense D435 如何设置曝光参数(exposure)
- mybatis中getMapper是怎么通过动态代理得到dao接口的实现类并执行mapper文件sql语句的
- Frog Traveler 最短路,bfs剪枝,打印路径
- centos php5.2安装教程,CentOS 5.2 x86 64(AMD)编译安装PHP小记
- abb外部轴零位校准_ABB机器人如何控制非同步联动外部轴
- Mycat安装与配置