python登陆微博函数 python自动发微博
如何用python调用新浪微博的api
与Twitter相比,新浪微博做得更好的地方是直接提供了SDK(Twitter貌似只有第三方的SDK)。而我自然是用Python SDK,一个只有几十k的玩意。
怀仁网站建设公司创新互联,怀仁网站设计制作,有大型网站制作公司丰富经验。已为怀仁1000+提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的怀仁做网站的公司定做!
接着进入exanples文件夹(新浪这英文水平,不提了…),打开oauthSetTokenUpdate.py文件就是一个很标准的例子了。
于是照着写了一个:
view sourceprint?01 # -*- coding: utf-8 -*-
02
03 from weibopy.auth import OAuthHandler
04 from weibopy.api import API
05
06
07 consumer_key= '应用的key'
08 consumer_secret ='应用的App Secret'
09
10 auth = OAuthHandler(consumer_key, consumer_secret)
11 auth_url = auth.get_authorization_url()
12 print 'Please authorize: ' + auth_url
13 verifier = raw_input('PIN: ').strip()
14 auth.get_access_token(verifier)
15 api = API(auth)
16
17 status = api.update_status(status='hello world', lat='12.3', long='45.6') # 注意status必须是UTF-8编码的字符串,经纬度是可以不写的
18 print status.id
19 print status.text
注意consumer_key和consumer_secret需要创建一个应用才能拿到。
运行这个程序,你会发现它可耻地失败了,报出一条语法错误:
File 'C:\Documents and Settings\Administrator\Desktop\sinatpy\weibopy\api.py',
line 197 )(self, *args, post_data=post_data, headers=headers)
^SyntaxError: invalid syntax于是打开weibopy\api.py这个文件,把197行改成:
)(self, post_data=post_data, headers=headers, *args)
再运行这个程序就会提示一个URL链接,在浏览器里打开这个链接,并且给予访问权限,就会拿到一串PIN码。把这个PIN码输上去,就会发送一条推了,并且还会显示用户的Access token key和Access token secret。
可以看到整个过程是很简单的:
用你的consumer_key和consumer_secret创建一个OAuthHandler对象auth。
告诉用户访问auth.get_authorization_url(),并让用户授权这个应用。
拿到用户的PIN码,用auth.get_access_token()拿到用户的Access token key和Access token secret。
用auth创建一个API对象api。
调用api的方法,例如update_status()就是发推。详细说明可以看API文档。
当然,每次都要求用户输入PIN码也太傻了,所以在用auth.get_access_token()拿到Access token key和Access token secret之后,就可以直接用它们来创建API对象了:
view sourceprint?01 # -*- coding: utf-8 -*-
02
03 from weibopy.auth import OAuthHandler
04 from weibopy.api import API
05
06
07 consumer_key= '应用的key'
08 consumer_secret ='应用的App Secret'
09 token = '用户的Access token key'
10 tokenSecret = '用户的Access token secret'
11
12 auth = OAuthHandler(consumer_key, consumer_secret)
13 auth.setToken(token, tokenSecret)
14 api = API(auth)
15
16 status = api.update_status(status='搞定收工~')
最后想说的是新浪微博的应用审核真麻烦,没通过审核的想show下自己个性化的应用名都不行。罢了,反正我也只是玩玩而已~
看看有没有用
Python中爬新浪微博时的模拟登录老不成功,出错如下↓ AttributeError:'set'
百度上经常有些不知所谓的人提问说我的代码报错,但就是不给出代码.我对于这种人的回答只有一个: 你的代码写错了,你要再问哪里错了,为什么错了,我只能说,你TMD又没给代码我看!!!我怎知道
你的代码写错了,你要再问哪里错了,为什么错了,我只能说,你TMD又没给代码我看!!!我怎知道
你的代码写错了,你要再问哪里错了,为什么错了,我只能说,你TMD又没给代码我看!!!我怎知道
你的代码写错了,你要再问哪里错了,为什么错了,我只能说,你TMD又没给代码我看!!!我怎知道
你的代码写错了,你要再问哪里错了,为什么错了,我只能说,你TMD又没给代码我看!!!我怎知道
你的代码写错了,你要再问哪里错了,为什么错了,我只能说,你TMD又没给代码我看!!!我怎知道
你的代码写错了,你要再问哪里错了,为什么错了,我只能说,你TMD又没给代码...
使用python实现定时发微博
新浪微博在登录时,对用户名、密码进行了加密处理,加密算法(b64encode、rsa等等)。
1,根据用户名username得到加密后的用户名su
2,根据su得到一个json串,里边包含加密密码用到的各种参数,servertime、nonce等
3,根据json串和密码得到加密后的密码,然后就可以登陆了。
新浪微博发微博的接口是:
;__rnd=时间戳
时间戳使用int(time.time() * 1000即可设置。
Post提交数据:
提交数据时需要设置Headers:
self.http.headers["Referer"] = "" % str(self.uid)
uid在登录时会返回。
如何通过python调用新浪微博的API
1:安装python(这个不多说啦)
2:下载新浪微博SDK的python包,解压为weibopy目录
()
3:申请AppKey,详见()
流程:
1:通过oAuth认证,详见()
按我的理解简化如下:
用户在新浪微博给的页面输入账号密码,然后微博给应用一个PIN码,这样应用通过PIN码才有权限访问该用户的信息,而应用在整个过程中是接触不到密码的,所以用户觉得很安全,后果很满意
2:获得认证之后,就可以使用微博SDK提供的API获得信息啦
3:如果想设计web或者客户端应用的话,那就继续加个GUI好啦(未完成)
代码:
#!/usr/bin/python
import webbrowser
from weibopy.auth import OAuthHandler
from weibopy.api import API
AppKey = '2525355147'
AppSecret = '2e2c7bcdfc362eace266d1f2bf83fe6b'
my_auth = OAuthHandler(AppKey , AppSecret)
webbrowser.open(my_auth.get_authorization_url())
verifier = raw_input('PIN: ').strip()
my_auth.get_access_token(verifier)
my_api = API(my_auth)
for comment in my_api.mentions():
object = comment
id = object.__getattribute__("id")
text = object.__getattribute__("text")
print str(id) + " : " + text
python调用微博api的place接口出现10014错误,怎么解决
一:获取app-key 和 app-secret
使用自己的微博账号登录微博开放平台(),在微博开放中心下“创建应用”创建一个应用,应用信息那些随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret
二:设置授权回调页
在“微博开放平台”的“管理中心”找到刚才创建的应用,点开这个应用,点开左边“应用信息”栏,会看见“App key”和“App Secret”的字样,这两个东西是要在后面程序中使用的。然后在“应用信息”下的“高级信息”点击“编辑”按钮,将“授权回调页面”设置为:,将“取消授权回调页”也设置为:。
三:安装微博 python SDK
有两种安装方式:
1:下载新浪微博SDK
2:python有个简单的安装方式:直接在命令行下键入:
[python] view plain copy
sudo pip install sinaweibopy
四:实例验证,获取当前登录用户及其所关注(授权)用户的最新微博
这里需要注意的是在浏览器弹出一个页面,要先点击“授权”(这里进行的OAuth 2认证,我理解为就是用户访问我的应用后将页面导向新浪服务器然后用户输入信息到新浪服务器后授权给我的应用访问用户数据,这里我将的微博授权给下面的程序了),授权后浏览器中的URL类似:将code后面那个复制到控制端,程序需要读入2024222384d5dc88316d21675259d73a这个数据
注意:如果想获取别的信息,只需修改
[python] view plain copy
statuses = client.statuses__friends_timeline()['statuses']
中的 statuses__friends_timeline即可
[python] view plain copy
# -*- coding: utf-8 -*-
from weibo import APIClient
import webbrowser #python内置的包
APP_KEY = 'xxxxxxxx'#注意替换这里为自己申请的App信息
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CALLBACK_URL = ''#回调授权页面
#利用官方微博SDK
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
#得到授权页面的url,利用webbrowser打开这个url
url = client.get_authorize_url()
print url
webbrowser.open_new(url)
#获取code=后面的内容
print '输入url中code后面的内容后按回车键:'
code = raw_input()
#code = your.web.framework.request.get('code')
#client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,类似abc123xyz456
expires_in = r.expires_in
# 设置得到的access_token
client.set_access_token(access_token, expires_in)
#可以打印下看看里面都有什么东西
statuses = client.statuses__friends_timeline()['statuses'] #获取当前登录用户以及所关注用户(已授权)的微博/span
length = len(statuses)
print length
#输出了部分信息
for i in range(0,length):
print u'昵称:'+statuses[i]['user']['screen_name']
print u'简介:'+statuses[i]['user']['description']
print u'位置:'+statuses[i]['user']['location']
print u'微博:'+statuses[i]['text']
结果如下(截取部分数据):
以下为我的关注用户的微博:
拿上边代码为例,这里我们获取的信息有:
分享标题:python登陆微博函数 python自动发微博
文章路径:http://pwwzsj.com/article/hpjgji.html