在研究完《Python 模拟登录新浪微博的两种方法》后继续捣鼓微博API,发现限制很多。比如查看好友列表只能返回30%,每小时微博、评论、转发数只能十五条。
前者可能是为了保护自家的微博APP,新浪微博APP的烂是出了名的,什么功能都想做,都想往里塞。以前经常用它刷微博,但是当它的无用功能越来越多之后,渐渐放弃了,顺便连微博也很少上——微博上到处都是转发了N遍的老段子,走了人人网衰落的老路。题外话略去不谈,下面放上目前的研究成果。
研究微博API纯是玩票性质,并没有刚性需求,所以一旦发现它限制多、意义不大,果断放手。在写这些代码过程中,最大的体会是在写单条微博类、用户类时,把JSON转化成类对象的方法,放在类中。以前爬豆瓣相册时,先把JSON数据挨个读取出来,再把每一项通过类的__init__
方法传进去,属性一多就容易写错,代码也不美观。现在折腾来折腾去,总算找到一种优雅的实现方法。半路出家,一些计算机专业的常识,都只能零零星星的学习摸索。加油!
身份验证有两种方式,一是App Key
,需要先模拟登录微博才可使用。二是Access Token
,不需要登录。
前者登录后可在微博API「我的应用」中找到。后者在API测试工具中,登录后可看到自己的Access Token
。
以下代码中默认使用Access Token
方式,如果想使用App Key
,需要手动调用login()
方法并传入用户名和密码。
1 | #!/usr/bin/env python |