QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 2177|回复: 0

[Python] python调用api实例讲解

[复制链接]

等级头衔

积分成就    金币 : 2841
   泡泡 : 1516
   精华 : 6
   在线时间 : 1294 小时
   最后登录 : 2024-11-21

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2021-4-21 19:15:49 | 显示全部楼层 |阅读模式
       我们在做自动化运维的时候,经常需要调用api中的接口,不过很多人不知道具体的调用方法,在学习python中的requests库后,我们就可以很轻松的实现了。
, K8 `' W0 D- e( C6 `8 x1、说明
. J, u! M+ w: H" z       api接口调用是指使用python的requests库进行访问,基本上是get或post请求,有些接口会加密,然后必须使用对方提供给我们的公钥加密或解密,配上相应的参数进行访问,我们所需要的数据在请求后的返回结果中,所看到的基本上都是json格式的解析,所以请求后可以使用requests自带的json函数进行解析,然后提取所需的数据,访问一次就能得到一个数据。  g' p! K( E; j0 M8 }* w8 J
2、实例
; o4 P) E. W/ x# l. r. p( z7 R  F
  1. # encoding: utf-8
  2. import requests
  3. import os,re
  4. import urllib.request
  5. data={"email":"xxxxxx@qq.com", "password":"********"}
  6. session = requests.session()
  7. session.post("http://www.renren.com/PLogin.do",data= data,verify = False)
  8. response =session.get("http://www.renren.com/410043129/profile")
  9. print (response.text)
  10. print (response.url)
  11. print (response.status_code)
  12. print (response.headers)
  13. #爬网页图片:
  14. requset=requests.post("http://tieba.baidu.com/p/4114581614",verify = False)
  15. r=r'src="(http://imgsrc.baidu.com/.*?\.jpg)"'
  16. #r=r'http://imgsrc.baidu.com/.+?\.jpg'
  17. mylist=re.findall(r,str(requset.text))
  18. print (mylist)
  19. j=0
  20. for i in mylist:
  21.     urllib.request.urlretrieve(i, "C:/Users/Administrator/Desktop/img1/"+str(j)+".jpg")
  22.     j+=1
      实例代码扩展:
, ~1 k! J$ `- n4 T
  1. # coding:utf-8
  2. import json
  3. from urlparse import parse_qs
  4. from wsgiref.simple_server import make_server
  5. # 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。
  6. def application(environ, start_response):
  7.     # 定义文件请求的类型和当前请求成功的code
  8.     start_response('200 OK', [('Content-Type', 'text/html')])
  9.     # environ是当前请求的所有数据,包括Header和URL,body,这里只涉及到get
  10.     # 获取当前get请求的所有数据,返回是string类型
  11.     params = parse_qs(environ['QUERY_STRING'])
  12.     # 获取get中key为name的值
  13.     name = params.get('name', [''])[0]
  14.     no = params.get('no', [''])[0]
  15.     # 组成一个数组,数组中只有一个字典
  16.     dic = {'name': name, 'no': no}
  17.     return [json.dumps(dic)]
  18. if __name__ == "__main__":
  19.     port = 5088
  20.     httpd = make_server("0.0.0.0", port, application)
  21.     print "serving http on port {0}...".format(str(port))
  22.     httpd.serve_forever()
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号|渝公网安备50010502503914号 )

GMT+8, 2024-11-23 16:15

Powered by paopaomj X3.5 © 2016-2025 sitemap

快速回复 返回顶部 返回列表