使用豆瓣API进行数据爬取

使用网站提供的API爬取网站中的数据是一种操作较为简单直接的方式,例如豆瓣网提供了对于电影、书籍等资源的各种数据的API,我们可以通过调用API来得到所需的数据,代码的编写也较灵活简洁。通过API获取数据的缺点是有些网站会限制API调用的次数和频率,用户需要付费来升级成高级用户来获取更灵活的API调用。

一.使用Jupyter Notebook编写Python

Jupyter Notebook是一个交互式的笔记本,可以理解成是一个IDE,支持40多种语言
1.安装
conda install jupyter
2.运行
jupyter notebook
输入以上命令即可在浏览器中打开编辑器

使用豆瓣API进行数据爬取_第1张图片
Xshot-0003.png

点击右上角New新建Python 3的Notebook后即可开始编写代码


使用豆瓣API进行数据爬取_第2张图片
Xshot-0004.png
二. 豆瓣电影TOP250数据爬取

先引入一个urllib的包来发送http请求

urllib是一个包含几个模块来处理请求的库。分别是:
urllib.request 发送http请求
urllib.error 处理请求过程中,出现的异常。
urllib.parse 解析url
urllib.robotparser 解析robots.txt 文件

import urllib.request as request

为使结果以json格式显示,于是添加以下代码

import json
print(json.loads(crawl_content.decode('utf8')))

爬取数据

import urllib.request as request
import json
url = 'https://api.douban.com/v2/movie/top250'
crawl_content = request.urlopen(url).read()
movies = json.loads(crawl_content.decode('utf8'))['subjects']
for movie in movies:
    print(json.loads(crawl_content.decode('utf8')))

得到部分结果如下:
使用豆瓣API进行数据爬取_第3张图片
Xshot-0005.png

为使结果更简洁,只提取电影名称、年份、类型、评分四项数据,将代码修改如下:

import urllib.request as request
import json
url = 'https://api.douban.com/v2/movie/top250'
crawl_content = request.urlopen(url).read()
movies = json.loads(crawl_content.decode('utf8'))['subjects']
for movie in movies:
    print(movie['title'],movie['year'],movie['genres'],movie['rating']['average'])

得到结果:
使用豆瓣API进行数据爬取_第4张图片
Xshot-0006.png

从结果可看出豆瓣的API允许用户获取前20项结果的数据

你可能感兴趣的:(使用豆瓣API进行数据爬取)