DC学院数据分析师(入门)学习笔记----基于网站API抓取《摔跤吧!爸爸》的豆瓣评分情况
来源:互联网 发布:苹果手机数据恢复软件免费版 编辑:程序博客网 时间:2024/05/08 01:07
前几天在某公众号上看到了对《战狼2》的数据分析,涉及人群,观看时间,影评,地点等等,分析的超级棒,所以就想着数据分析是一件很有说话权的事情。作为这方面的小白,决定抽时间学习一番。于是乎,通过博客来记录一下自己的学习路程。
其实就是跟着网课的操作笔记
这次是基于网站API抓取《摔跤吧!爸爸》的豆瓣评分情况
首先,我们需要了解豆瓣API的说明。
豆瓣API说明:https://developers.douban.com/wiki/?title=movie_v2
可以看到豆瓣电影的sourceurl的格式为:
这也就是说,不同的电影的API链接只是最后的id不同。
我们来看一下《摔跤吧!爸爸》的id:26387939
按照豆瓣API的格式,打开《摔跤吧!爸爸》的JSON看一下:
当然,我们还是希望能直接通过代码的方式来访问这个API,而不是通过我们的查询来查看,怎么做呢?python提供给我们一个对URL进行访问的工具包:urllib
下面,介绍urllib这个包的调用方法:
我们通过一个具体的实例说明urllib这个工具包的使用。
通过Jupyter这个可视化工具来编写代码,安装Anaconda的时候已经默认安装好了,改一下工作路径,运行jupyter-notebook.exe文件,重新new一个python文件,就可以看到编写界面了。
运行下述这段代码(ctrl+Enter运行),可以看到结果为:
importurllib.request
asurlrequest
url_visit =
'https://api.douban.com/v2/movie/26387939'crawl_content = urlrequest.urlopen(url_visit).read()
print(crawl_content.decode(
'utf8'))
因为有中文编码的问题,所以采用另一种编码方式:
importurllib.request
asurlrequest
url_visit =
'https://api.douban.com/v2/movie/26387939'crawl_content = urlrequest.urlopen(url_visit).read()
print(crawl_content.decode(
'unicode-escape'))
可以看到这时可以正常显示中文了。
上述我们抓取到的是JSON格式。
那么,如何从这个JSON格式中,得到我们想要的信息呢?利用json这个工具包
下面阐述json这个工具包的使用。
这个包是python自带的,不需要单独安装
在我们之前的python文件中新建一个cell:
运行下述这段代码(ctrl+Enter运行),可以看到结果为:
importjson
json_content = json.loads(crawl_content.decode(
'utf8'))
rating = json_content[
'rating'][
'average']
print(rating)
即,得到我们想要获取的评分。
如果我们想要把抓取的结果保存到文件当中应该怎么做呢?
运行下面代码,将电影id和评分保存到txt文件中:
id=
26387939rating=json_content[
'rating'][
'average']
withopen(
"movie_score.txt",
"a")
asoutputfile:
outputfile.write(
"{} {}\n".format(id, rating))
我们可以查看一下movie_score.txt这个文件,看是否保存到了我们想要的信息。
这个movie_score.txt在哪个路径下呢?
这时我们看到,我们已经成功把想要获取的内容保存到了txt文件当中:
如果有多个电影的,怎样通过循环的方式来获取它们的评分呢?
运行这段代码:
#调用 urllib 和 jsonimporturllib.request
asurlrequest
importjson
#将需要爬取的电影写入列表,方便后面依次使用id_list=[
26387939,
11803087,
20451290]
#创建一个写入评分的文件 douban_movie_rank.txtwithopen(
"douban_movie_rank.txt",
"w")
asoutputfile:
#写一个for循环,分别抓取不同电影的评分,与上面爬取单个电影相同for
id
inid_list:
url_visit =
'https://api.douban.com/v2/movie/{}'.format(id)
crawl_content = urlrequest.urlopen(url_visit).read()
json_content = json.loads(crawl_content.decode(
'utf8'))
rank=json_content[
'rating'][
'average']
outputfile.write(
"{} {}\n".format(id, rank))
查看一下txt中的内容:每一个电影id后都有其评分
当然,也可以通过指定影片名来得到其豆瓣得分:
- DC学院数据分析师(入门)学习笔记----基于网站API抓取《摔跤吧!爸爸》的豆瓣评分情况
- DC学院数据分析师(入门)学习笔记----基于网页抓取天气数据demo以及基于网页抓取《摔跤吧!爸爸》豆瓣评分
- DC学院数据分析师(入门)学习笔记----高级爬虫技巧
- DC学院数据分析师(入门)学习笔记----利用python操作MySQL数据库
- 【影评】摔跤吧爸爸!
- 《摔跤吧,爸爸》观后感
- 《摔跤吧,爸爸》观后感
- 《摔跤吧爸爸》观后感
- 摔跤吧 爸爸
- 【经典语录】摔跤吧!爸爸
- 《摔跤吧!爸爸》中引人深思的中英文台词
- 《摔跤吧!爸爸》中引人深思的中英文台词
- 电影《摔跤吧!爸爸》四个触动我的瞬间
- 分析Fiddler抓取的豆瓣开发的API接口详解
- 基于数据分析的评分系统改进
- 摔跤吧!爸爸 百度云资源
- 《摔跤吧,爸爸》我们永不言弃
- 豆瓣影评数据抓取与简要分析
- 一个实例讲解fastbins上的堆利用
- ORA-00020:maximum number of processes (500) exceeded 错误解决方法
- EhCache缓存介绍
- Spring-boot中读取config配置文件的两种方式
- SD卡驱动理论篇
- DC学院数据分析师(入门)学习笔记----基于网站API抓取《摔跤吧!爸爸》的豆瓣评分情况
- riscv安装tools的时候出现gitclone错误
- 几个常用的 Git 高级命令
- i++与++i的区别
- WebApi系列~开放的CORS,跨域资源访问对所有人开放
- 技术控必读,VR中神乎其神的异步时间扭曲技术原来如此
- Merge Intervals
- Scheme跳转协议
- 对echart中的一些属性设置的认识