美文网首页
使用豆瓣API进行数据爬取

使用豆瓣API进行数据爬取

作者: Carina_55 | 来源:发表于2018-06-08 11:45 被阅读0次

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

    一.使用Jupyter Notebook编写Python

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

    Xshot-0003.png

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


    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')))
    
    得到部分结果如下: 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'])
    
    得到结果: Xshot-0006.png

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

    相关文章

      网友评论

          本文标题:使用豆瓣API进行数据爬取

          本文链接:https://www.haomeiwen.com/subject/jdvjsftx.html