我们在做自动化运维的时候,经常需要调用api中的接口,不过很多人不知道具体的调用方法,在学习python中的requests库后,我们就可以很轻松的实现了。
1、说明
api接口调用是指使用python的requests库进行访问,基本上是get或post请求,有些接口会加密,然后必须使用对方提供给我们的公钥加密或解密,配上相应的参数进行访问,我们所需要的数据在请求后的返回结果中,所看到的基本上都是json格式的解析,所以请求后可以使用requests自带的json函数进行解析,然后提取所需的数据,访问一次就能得到一个数据。
2、实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# encoding: utf-8 import requests import os,re import urllib.request data = { "email" : "251910179@qq.com" , "password" : "ydd4903087" } session = requests.session() session.post( "http://www.renren.com/PLogin.do" ,data = data,verify = False ) response = session.get( "http://www.renren.com/410043129/profile" ) print (response.text) print (response.url) print (response.status_code) print (response.headers) #爬网页图片: requset = requests.post( "http://tieba.baidu.com/p/4114581614" ,verify = False ) r = r 'src="(http://imgsrc.baidu.com/.*?\.jpg)"' #r=r'http://imgsrc.baidu.com/.+?\.jpg' mylist = re.findall(r, str (requset.text)) print (mylist) j = 0 for i in mylist: urllib.request.urlretrieve(i, "C:/Users/Administrator/Desktop/img1/" + str (j) + ".jpg" ) j + = 1 |
实例代码扩展:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# coding:utf-8 import json from urlparse import parse_qs from wsgiref.simple_server import make_server # 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。 def application(environ, start_response): # 定义文件请求的类型和当前请求成功的code start_response( '200 OK' , [( 'Content-Type' , 'text/html' )]) # environ是当前请求的所有数据,包括Header和URL,body,这里只涉及到get # 获取当前get请求的所有数据,返回是string类型 params = parse_qs(environ[ 'QUERY_STRING' ]) # 获取get中key为name的值 name = params.get( 'name' , [''])[ 0 ] no = params.get( 'no' , [''])[ 0 ] # 组成一个数组,数组中只有一个字典 dic = { 'name' : name, 'no' : no} return [json.dumps(dic)] if __name__ = = "__main__" : port = 5088 httpd = make_server( "0.0.0.0" , port, application) print "serving http on port {0}..." . format ( str (port)) httpd.serve_forever() |
到此这篇关于python调用api实例讲解的文章就介绍到这了,更多相关python 如何调用api内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/jishu/jichu/29660.html