如何获取用户自己的豆瓣信息

相信不少人在豆瓣上混迹不少时间,也积蓄了不少东西吧,比如我喜欢看书,上面记录了写自己看过的书。以书会友,本人就想在博客里面把书单取到,然后展示下。

怎么取得书单呢?当然可以通过抓取实现,在豆瓣没有开放API前可以这么做, 现在的话就是脱裤子放屁了。

在做这个之前我还走了个弯路,以为要到豆瓣上注册App才可以,结果发现完全没必要。当然如果你要修改数据啊之类的,那就要注册App了,需要用户授权,要走Oauth,比较麻烦。现在如果只是读取的话很简单。

首先你需要知道你的 豆瓣ID

怎么知道呢?直接登录到豆瓣,然后到账号管理里,看浏览器url

http://www.douban.com/people/xxx/

会看到类似的url, xxx就是豆瓣ID,记住就好。

然后关于使用,直接Get调接口就可以。

比如假设我的id是 12345, 那么接口就是

https://api.douban.com/v2/book/user/12345/collections

返回结果是Json,长下面样子

{
    "count": 20, 
    "start": 0, 
    "total": 30, 
    "collections": [
        {
            "status": "read", 
            "comment": "飞机上看完的书,书中有很多有趣的数学问题,对于一个数学很难及格的人也能被勾起积分兴趣。", 
            "updated": "2013-10-06 00:11:04", 
            "user_id": "49236350", 
            "tags": [
                "数学", 
                "Matrix67", 
                "顾森"
            ], 
            "rating": {
                "max": 5, 
                "value": "4", 
                "min": 0
            }, 
            "book": {
                "rating": {
                    "max": 10, 
                    "numRaters": 819, 
                    "average": "8.4", 
                    "min": 0
                }, 
                "subtitle": "Matrix67数学笔记", 
                "author": [
                    "顾森"
                ], 
                "pubdate": "2012-6", 
                "tags": [
                    {
                        "count": 2984, 
                        "name": "数学", 
                        "title": "数学"
                    }, 
                    {
                        "count": 1346, 
                        "name": "科普", 
                        "title": "科普"
                    }, 
                    {
                        "count": 858, 
                        "name": "思考的乐趣:Matrix67数学笔记", 
                        "title": "思考的乐趣:Matrix67数学笔记"
                    }, 
                    {
                        "count": 762, 
                        "name": "思维", 
                        "title": "思维"
                    }, 
                    {
                        "count": 595, 
                        "name": "数学思维", 
                        "title": "数学思维"
                    }, 
                    {
                        "count": 578, 
                        "name": "Matrix67", 
                        "title": "Matrix67"
                    }, 
                    {
                        "count": 258, 
                        "name": "顾森", 
                        "title": "顾森"
                    }, 
                    {
                        "count": 171, 
                        "name": "计算机科学", 
                        "title": "计算机科学"
                    }
                ], 
                "origin_title": "", 
                "image": "http://img3.douban.com/mpic/s10323913.jpg", 
                "binding": "平装", 
                "translator": [ ], 
                "catalog": "序...",
                "pages": "266", 
                "images": {
                    "small": "http://img3.douban.com/spic/s10323913.jpg", 
                    "large": "http://img3.douban.com/lpic/s10323913.jpg", 
                    "medium": "http://img3.douban.com/mpic/s10323913.jpg"
                }, 
                "alt": "http://book.douban.com/subject/10779597/", 
                "id": "10779597", 
                "publisher": "人民邮电出版社", 
                "isbn10": "7115275866", 
                "isbn13": "9787115275868", 
                "title": "思考的乐趣", 
                "url": "http://api.douban.com/v2/book/10779597", 
                "alt_title": "", 
                "author_intro": "作者简介:
顾森
网名Matrix67,北京大学中文系应用语言学专业学生,数学爱好者。2005年开办数学博http://www.matrix67.com,至今已积累上千篇文章,已有上万人订阅。长期为各类科普杂志供稿,从事中学数学教育工作多年。", 
                "summary": "本书是一个疯狂数学爱好者的数学笔记,面向所有喜爱数学的读者。从2005年7月开始,作者已经写了连续六年的博客,积累下来了大量的数学文章。 部分文章内容被广泛关注,在网络上大量分享转载。
这本书有意挑选了初等的话题,让大大小小的读者都能没有障碍地阅读。文章内容新,让有数学背景的人也会发现很多自己没见过的初等问题。 文章是独立的。一篇文章一个话题,文章与文章之间基本不会做参考,读者可以随意跳着看。
文章内容注重思想性,基本上是原创,没有什么版权争议。
总之,这是一本标新立异的趣味数学书。每一个读过的人都会被深深吸引。这是一个热爱思考的年轻人积攒的让人一读就欲罢不能的趣味书。
本书包括5部分内容,即生活中的数学、数学之美、几何的大厦、精妙的证明、思维的尺度,涉及48篇精彩的文章。即使你不喜欢数学,也会为本书的精彩所倾倒。", 
                "price": "45.00元"
            }, 
            "book_id": "10779597", 
            "id": 732685539
        }
    ]
}

返回列表中包含了自己想读,读过,以及在读的书,可以按照自己的需求进行处理。

另外要注意的是,接口默认只返回前20条数据,所以在书单数量超过20的时候需要自己处理,多次请求。或者你可以想读,读过,在读的书分开请求

请求参数为:

start -  偏移量
count -  返回的结果数
status - [wish|reading|read], 分别对应 想读,在读,读过

如果你要用高端功能,那么只能注册App了,给个传送门:http://developers.douban.com/apikey/apply

如果还有需要了解API详细信息的可以看 豆瓣API快速入门