python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250
原标题:Python数据可视化:豆瓣电影TOP250
源 /法纳斯特文 /小F
本文转载自「法纳斯特」
搜索「walker398」即可关注
豆瓣电影TOP250,对于众多爬虫爱好者,应该并不陌生。
很多人都会以此作为第一个练手的小项目。
当然这也多亏了豆瓣的包容,没有加以太多的反爬措施,对新手比较友好。
本期通过Scrapy框架,对豆瓣电影TOP250信息进行爬取。
同时对获取的数据进行可视化分析,给大家带来一个不一样的TOP250。
/ 01 / Scrapy
之前了解了pyspider框架的使用,但是就它而言,只能应用于一些简单的爬取。
对于反爬程度高的网站,它就显得力不从心。
那么就轮到Scrapy上场了,目前Python中使用最广泛的爬虫框架。
当然目前我学习的都是简单爬虫,上述内容都是道听途说,并不是切身体会。
Scrapy的安装相对复杂,依赖的库较多。
不过通过度娘,最后我是成功安装了的。放在C盘,如今我的C盘要爆炸。
首先任意文件夹下命令行运行scrapy startproject doubanTop250,创建一个名为doubanTop250的文件夹。
然后在文件夹下的py文件中改写程序。
进入文件夹里,命令行运行scrapy genspider douban movie.douban.com/top250。
最后会生成一个douban.py文件,Scrapy用它来从网页里抓取内容,并解析抓取结果。
最终修改程序如下。
importscrapy
fromscrapy importSpider
fromdoubanTop250.items importDoubantop250Item
classDoubanSpider(scrapy.Spider):
name = 'douban'
allowed_domains = ['douban.com']
start_urls = ['https://movie.douban.com/top250/']
defparse(self, response):
lis = response.css('.info')
forli inlis:
item = Doubantop250Item()
# 利用CSS选择器获取信息
name = li.css('.hd span::text').extract()
title = ''.join(name)
info = li.css('p::text').extract()[1].replace('n', '').strip()
score = li.css('.rating_num::text').extract_first()
people = li.css('.star span::text').extract()[1]
words = li.css('.inq::text').extract_first()
# 生成字典
item['title'] = title
item['info'] = info
item['score'] = score
item['people'] = people
item['words'] = words
yielditem
# 获取下一页链接,并进入下一页
next = response.css('.next a::attr(href)').extract_first()
ifnext:
url = response.urljoin(next)
yieldscrapy.Request(url=url, callback=self.parse)
pass
生成的items.py文件,是保存爬取数据的容器,代码修改如下。
importscrapy
classDoubantop250Item(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = scrapy.Field()
info = scrapy.Field()
score = scrapy.Field()
people = scrapy.Field()
words = scrapy.Field()
pass
在这个之后,还需要在settings.py文件添加用户代理和请求延时。
最后在douban.py所在文件夹下打开命令行,输入scrapy crawl douban。
命令行就会显示获取的结果啦!!!
这里豆瓣的信息有Unicode编码,我也不知为何要在一个网页里设置两种编码。
在当前文件夹命令行运行scrapy crawl douban -o douban.csv,即可输出csv文件。
由于在处理的时候没有去除空格,造成有两种编码存在,无法通过Excel查看。
这里就贴一个文本文档,后续会在数据可视化里去除Unicode编码。
/ 02 / 数据可视化
01 电影上映年份分布
这里可以看出豆瓣电影TOP250里,电影的上映年份,多分布于80年代以后。
其中有好几年是在10部及以上的。
02 中外电影上映年份分布
明显感受到了国产电影和国外电影的差距,90年代还行,还能过过招。
越往后,国产电影就基本就没有上榜的。
每年电影出得倒是不少,真正质量好的又能有几部呢?
今天刚好看到新周刊的推文「2018年10大烂片」。
影评人周黎明:如果一部影片既没有表达,也没有最基本的技术水准,那应该是最彻底的烂片。
讲道理,国产烂片还真不少...
03 中外电影评分情况
通过上张图,我们知道国外电影是占据了榜单的大多数。
不过这里评分情况,倒是倍感欣慰,说明国产电影中的精品也不错,和国外电影并没有太大的差距。
只是这些影片貌似有点老了...
04 电影数TOP10
美国遥遥领先,中国位居其中。
在我的那篇「2018年电影分析」中,中国目前可是个电影高产国,结果呢...
香港都比内地的多。这里不得不佩服90,00年代的香港影业,确实很强!
05 电影评分分布
大多分布于「8.5」到「9.2」之间。最低「8.3」,最高「9.6」。
06 评论人数TOP10
让我们来看看人气最高的有哪些影片,你又看过几部呢?
记得上学的时候,时间多。我根据IMDbTOP250,看了榜上大部分的电影。
于是乎豆瓣电影这个TOP10,我也全看过了,都是一些有故事的电影。
07 排名评分人数三维度
总的来说,排名越靠前,评价人数越多,并且分数也越高。
08 年份评分人数三维度
这里就更加明显看出榜单上电影分布情况,大部分都是80年代以后的。
在90年代有个小高峰,不仅评价高,人气还高。
往后的数据就相对平稳,变化不是太大。
09 电影类型图
和我之前「2018年电影分析」比较一下,发现榜单里「动作」片减少不少,其他差别不大。
这算不算是间接说明国人更喜欢视觉上的东西呢?
/ 03 / 总结
本次只是一个简单的Scrapy操作,目的就是简单了解一下它的使用。
以后或许会更深入去学习Scrapy框架,所以慢慢等小F填坑吧!
阅读原文,代码都放「GitHub」上头了。
文末点个赞,比心!!!
··· END ···返回搜狐,查看更多
责任编辑:
python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250相关推荐
- AJAX教程美食滤镜,Python爬虫实例——爬取美团美食数据
1.分析美团美食网页的url参数构成 1)搜索要点 美团美食,地址:北京,搜索关键词:火锅 2)爬取的url https://bj.meituan.com/s/%E7%81%AB%E9%94%85/ ...
- Python爬虫4.2 — ajax(动态网页数据抓取)用法教程
Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...
- python爬虫——使用selenium爬取微博数据(一)
python爬虫--使用selenium爬取微博数据(二) 写在前面 之前因为在组里做和nlp相关的项目,需要自己构建数据集,采用selenium爬取了几十万条微博数据,学习了很多,想在这里分享一下如 ...
- Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影
文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...
- python爬虫实战之异步爬取数据
python爬虫实战之异步爬取数据 文章目录 前言 一.需求 二.使用步骤 1.思路 2.引入库 3.代码如下 总结 前言 python中异步编程的主要三种方法:回调函数.生成器函数.线程大法. 以进 ...
- 【python数据分析实战】国产烂片深度揭秘(1)——以“豆瓣评分”为标准,看看电影评分分布,及烂片情况
1 前期准备 import os os.chdir(r'C:\Users\86177\Desktop') import warnings warnings.filterwarnings('ignore ...
- python爬虫之Ajax动态加载数据抓取--豆瓣电影/腾讯招聘
动态加载数据抓取-Ajax 特点 1.右键 -> 查看网页源码中没有具体数据 2.滚动鼠标滑轮或其他动作时加载 抓取 1.F12打开控制台,页面动作抓取网络数据包 2.抓取json文件URL地址 ...
- python爬虫28 | 你爬下的数据不分析一波可就亏了啊,使用python进行数据可视化...
通过这段时间 小帅b教你从抓包开始 到数据爬取 到数据解析 再到数据存储 相信你已经能抓取大部分你想爬取的网站数据了 恭喜恭喜 但是 数据抓取下来 要好好分析一波 最好的方式就是把数据进行可视化 这样 ...
- python爬虫之xpath和lxml应用—爬取豆瓣评分爬取
python爬虫之豆瓣评分爬取 1 第一步 获取网页源码 2 第二步 获取电影信息 3 第三步 保存数据 4 综合 ''' 需求:爬取电影的名字 评分 引言 详情页的url,每一页都爬取并且把数据保存 ...
- 一个月入门Python爬虫,轻松爬取大规模数据
如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样一个月入门Python爬虫,轻松爬的编程语言提供越来越多的优秀工具,让爬虫 ...
最新文章
- R构建岭回归模型(Ridge Regression)实战
- 算法---------数组-----------两数相加
- 【拓扑排序】【堆】CH Round #57 - Story of the OI Class 查错
- oracle主从表分离怎么实时更新数据_高可用数据库主从复制延时的解决方案
- SharedPreferences操作数据
- 【ArcGIS微课1000例】0006:创建随机点(Create Random Points)
- Linux内核入门之路 (非广告)
- springbean的生命周期_spring bean生命周期(涵盖spring常用接口的载入)
- 内核编译报错Fedora20(友善)
- 为何国内“程序员”是秃头代名词?来看看国外程序员的一天
- C++实现求复数的模长
- 上海拍牌服务器协议,上海拍牌服务器地址
- 瑞吉外卖-全网最全笔记-Day06
- sql2000 指定的服务器不存在,SQL Server 2000服务无法启动,提示“系统找不到指定的文件”解决方法及sp4安装不上...
- .NET获取硬盘序列号的几个方法
- jmeter接口自动化,你敢想,我敢玩
- 初二年级估算要不要用计算机,期中备考:人教版1-6年级上册数学知识要点,抓紧为孩子收藏!...
- 自媒体,如何提高文章曝光率?
- 百度智能云体验馆领取CDN及24小时急速收录
- 正大国际:交易有三种境界作为交易者的你们怎么看?