豆瓣API在python中的使用

来源:互联网 发布:java 捕获异常 编辑:程序博客网 时间:2024/05/29 03:53

在学习使用豆瓣API中,我们初步使用了豆瓣API。但是,对比python的douban-client的接口和豆瓣API的接口,还是有很大不同的。
就拿 读书 举例,在python的SDK中,只给出了如下示例:

# 以下 id 指图书条目数字 id# q: 关键词, tag: 标签获取一本图书信息 client.book.get(id)通过isbn获取信息 client.book.isbn(isbn_number)搜索图书信息     client.book.search(q, tag, start, count) 获取图书标签 client.book.tags(id)获取用户标签 client.book.tagged_list(user_id)发表一条书评 client.book.review.new(id, title, content)更新一条书评 client.book.review.update(review_id, title, content)删除一条书评 client.book.review.delete(review_id)

可是在对应的图书API,可是给出了很多方法:

说明 HTTP方法 URL path 获取图书信息 GET /v2/book/:id 根据isbn获取图书信息 GET /v2/book/isbn/:name 搜索图书 GET /v2/book/search 获取某个图书中标记最多的标签 GET /v2/book/:id/tags 获取用户对图书的所有标签 GET /v2/book/user/:name/tags 获取某个用户的所有图书收藏信息 GET /v2/book/user/:name/collections 获取用户对某本图书的收藏信息 GET /v2/book/:id/collection 获取某个用户的所有笔记 GET /v2/book/user/:name/annotations 获取某本图书的所有笔记 GET /v2/book/:id/annotations 获取某篇笔记的信息 GET /v2/book/annotation/:id 获取丛书书目信息 GET /v2/book/series/:id/books

至少在python的SDK中没有直接的方法 获取用户的藏书 或 获取用户的笔记 。

再深入看一下douban-client中book的代码

# -*- coding: utf-8 -*-from .subject import Subjectclass Book(Subject):    target = 'book'    def __repr__(self):        return '<DoubanAPI Book>'    def isbn(self, isbn_id):        return self._get('/v2/book/isbn/%s' % isbn_id)

就这么十几行。不过,从isbn方法中,我们可以看到获取数据的方法,就是调用_get方法,传递URL path和相应的数据就可以。
这样,我就在应用层中进行尝试,发现果然可以调用_get方法。比如,用如下方法可以看到用户1170656看过的图书

id = '1170656'result = client.user._get('/v2/book/user/%s/collections' % id, status='read')

参数status参考http://developers.douban.com/wiki/?title=book_v2#get_user_collections

0 0
原创粉丝点击