python怎么调用api
① python怎么使用api接口测试
在开发中,需要测试web-api的接口 spring mvc 使用单元测试非常方便,但是,受不了单元测试的启动速度。用python写了一个小脚本,用于测试接口,
测试脚本配置文件
api.yaml
server:
url: http://127.0.0.1:9000/ihome/
api:
name:
#api-v2-neighbor-list.yaml
- api/v2/neighbor/list
api-v2-neighbor-list.yaml
接口配置文件
method:
post
data:
#post 的 body 的json
postSid: a1
userSid: u2
python 脚本
import requests, json, yaml, sys
def apiTest(apiName):
f = open("api.yaml")
obj = yaml.safe_load(f)
f.close()
if apiName != "":
runApi(obj["server"]["url"] + apiName, apiName.replace("/", "-") + ".yaml")
return;
apis = obj['api']["name"]
for api in apis:
runApi(obj["server"]["url"] + api, api.replace("/", "-") + ".yaml")
def runApi(url, dataFile):
headers = {'Content-Type' : 'application/json; charset=UTF-8',
'X-Requested-With' : 'XMLHttpRequest',
'Connection' : 'keep-alive',
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'
}
② 如何通过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 = ''
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
def main():
key = 'Access Key Id'
secret = 'Access Key Secret'
zones = ['cn-beijing', 'cn-shanghai', 'cn-qing', 'cn-hangzhou']
filename = './aliyunSystemToExcel.xlsx'
result = []
for zone in zones:
info = get_sys_info(key, secret, zone)
data = format_data(info)
[ result.append(line) for line in data ]
write_excel(filename, result)
if __name__ == '__main__':
main()
④ 如何通过python调用新浪微博的API
1.下载SDK
使用python调用API的话,首先要去下一个Python的SDK,sinaweibopy
连接地址在此: http://michaelliao.github.com/sinaweibopy/
可以使用pip很快的导入,github连接里的wiki也有入门的使用方法,很容易看懂。
2.理解新浪微博的授权机制
在调用API之前,首先要搞懂什么叫OAuth 2,即新浪微博的授权机制,
连接在此: http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
3.在新浪微博注册应用
每个人都可以通过新浪微博开发者平台注册自己的应用,我注册的是站内应用。注册后会为每个应用分配唯一的app key 和 app secret,这在上文提到的授权机制中需要用到,相当与每个应用的标示吧。
至此,我们可以尝试写代码调用新浪微博的API啦。
4.简单的调用API实例
参考了往上很多资料和文档,写了一个简单的调用过程。
# _*_ coding: utf-8 _*_
from weibo import APIClient
import webbrowser
APP_KEY = ”
APP_SECRET = ”
CALLBACK_URL = ”
#这个是设置回调地址,必须与那个”高级信息“里的一致
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
url = client.get_authorize_url()
# TODO: redirect to url
#print url
webbrowser.open_new(url)
# 获取URL参数code:
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 # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4
# TODO: 在此可保存access token
client.set_access_token(access_token, expires_in)
print client.friendships.friends.bilateral.ids.get(uid = 12345678)
通过以上的代码,我实现了调用相互关注API的调用,即查找与某个id的用户相互关注的人的列表。
其中,APP_KEY和APP_SECRET就是前文中分配给每个应用的信息,回调地址在每个应用的高级信息中可以看到,需要自己设置,不过随便设置一下就好
比较恶心的是code的获取,我一开始看sinaweibopy的文档的时候也没弄懂是什么意思,如上面的代码所示,url得到的是一个授权的网址,我们通过
webbrowser.open_new(url)
这行代码打开浏览器跳转到授权的界面,然后观察所在界面的网址,会显示大概如下一样的格式:
http://apps.weibo.com/sayarywei?code=
看到了吗?
问号后面有一个code=……的一个东西,把等号后面的字符串拷贝下来赋给code就可以了,但是每次运行程序是code不是一成不变的,也就是说每次都
要有这么一个手动获取的过程,我觉得很麻烦,以后自己再研究一下,实现自动获取code就好了。如果能有哪位大神告诉我,感激不尽~
好了,得到正确的code之后就可以完成授权认证,也就可以调用微博的API啦,至于如何在Python下调用,我拷贝一下sinaweibopy上的介绍:
首先查看新浪微博API文档,例如:
API:statuses/user_timeline
请求格式:GET
请求参数:
source:string,采用OAuth授权方式不需要此参数,其他授权方式为必填参数,数值为应用的AppKey?。
access_token:string,采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。
uid:int64,需要查询的用户ID。
screen_name:string,需要查询的用户昵称。
(其它可选参数略)
调用方法:将API的“/”变为“.”,根据请求格式是GET或POST,调用get ()或post()并传入关键字参数,但不包括source和access_token参数:
r = client.statuses.user_timeline.get(uid=123456)
for st in r.statuses:
print st.text
若为POST调用,则示例代码如下:
r = client.statuses.update.post(status=u'测试OAuth 2.0发微博')
若需要上传文件,传入file-like object参数,示例代码如下:
f = open('/Users/michael/test.png', 'rb')
r = client.statuses.upload.post(status=u'测试OAuth 2.0带图片发微博', pic=f)
f.close() # APIClient不会自动关闭文件,需要手动关闭
请注意:上传的文件必须是file-like object,不能是str,因为无法区分一个str是文件还是字段。可以通过StringIO把一个str包装成file-like object。
⑤ python中怎样调用百度搜索的API接口
网络搜索不用API接口,它是get请求,自己拼接就行了。
打开网络搜索,随便搜索一个关键字,看地址栏就有get请求的参数。
⑥ 如何用Python写一个post请求调用api
使用http库就可以做到
参考:
importhttp.client
conn=http.client.HTTPConnection(host='123.56.129.164',port=8080)
if__name__=='__main__':
header={'content-type':'image/jpeg'}
body=open(u'D:\test.jpg','rb').read();
conn.request('POST',u'User/uploadFile/id/ba1da387-cd13-4ead-b1e7-c7c443840b3a',headers=header,body=body)
#response=conn.getresponse()
⑦ 求解释python调用api的方法
http://developer.qiniu.com/docs/v6/sdk/python-sdk.html
⑧ Python怎样调用Api去抓取数据
官方的话,详见该api的文档和请求格式
非官方的只能问该提供的api的本人了
⑨ 编程:python怎么调用android的API
1、下载相关软件包
下载地址:(http://code.google.com/p/android-scripting/downloads/list),我们需要下载如下几个文件:
并将这5个文件复制到 Android SDK目录下,(我这里复制到/opt/android-sdk-linux/platform-tools , adb工具现在被放在platform-tools下,而不是原来的tools目录)
3、安装Python
回到虚拟器,点击图标,进入程序菜单界面。
4、import Android,即可调用各个类。