美文网首页Python
requests库-Quick Start

requests库-Quick Start

作者: 行水坐云 | 来源:发表于2021-03-31 21:12 被阅读0次

熟悉python接口自动化的同学,应该对requests库有一定的了解,requests库的设计理念,让这个库的使用非常简单易学。
requests的口号:让HTTP服务人类。本人介绍requests常用的API。

安装

pip install requests

发送请求

import requests

url='https://www.baidu.com'

r=requests.get(url=url) #其它方法等同,如 r=requests.post(url=url)
#r是response对象

print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n响应头:{r.headers}\n响应正文:{r.text}\n")

传递查询参数

以字典的方式传递查询参数,即url地址的第五个部分组成。

import requests

url='https://www.baidu.com'
params={'a':1,"b":2} #以字典的方式传递
r=requests.get(url=url,params=params)

print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n响应头:{r.headers}\n响应正文:{r.text}\n")

处理响应乱码

使用r.encoding改变编码规则

import requests


url='https://www.baidu.com'
params={'a':1,"b":2} #以字典的方式传递
r=requests.get(url=url,params=params)
print(r.encoding)  #获取编码
r.encoding='utf-8'  #改变编码,永久改变,requests对象都会使用新值
print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n响应头:{r.headers}\n响应正文:{r.text}\n")

入参是urlencoded的表单数据

import requests

url='http://www.shopxo.com/shopxo/index.php?s=/index/user/login.html'
data={
    'accounts':'test1',
      'pwd':'123456'
      }
r=requests.post(url=url,data=data)

print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n响应头:{r.headers}\n响应正文:{r.text}\n")

入参是json

import requests

url='http://www.shopxo.com/shopxo/index.php?s=/index/user/login.html'
json={
    'accounts':'test1',
      'pwd':'123456'
      }

r=requests.post(url=url,json=json)

print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n响应头:{r.headers}\n响应正文:{r.text}\n")

发送定制头

import requests

url='http://www.shopxo.com/shopxo/index.php?s=/index/user/login.html'
headers={
    "X-Requested-With":"XMLHttpRequest"
}

r=requests.post(url=url,headers=headers)

print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n响应头:{r.headers}\n响应正文:{r.text}\n")

出参是json,解析成python的字典


import requests

url='http://www.shopxo.com/shopxo/index.php?s=/index/user/login.html'
headers={
    "X-Requested-With":"XMLHttpRequest"
}
data={
    "accounts":'test1',
    'pwd':'123456'
}
r=requests.post(url=url,headers=headers,data=data)
# print(type(r.text)) #r.text返回字符串
# print(type(r.json()))  #r.json()返回字典,后续提取键值方便
print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n{'-'*200}\n响应头:{r.headers}\n响应正文:{r.json()}\n")

form-data格式上传文件

请求头的Content-Type是form-data格式

'Content-Type': 'multipart/form-data; boundary=6d7aa68692da60ca157e6d3cbfb9940b'
import requests
from pprint import pprint
url='http://www.shopxo.com/shopxo/index.php?s=/index/user/login.html'
files={
    'file':open('case.xlsx','rb')
}

r=requests.post(url=url,files=files)

print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n{'-'*555}\n响应头:{r.headers}\n响应正文:{r.text}\n")

获取响应的cookies

import requests
from pprint import pprint
url='http://www.shopxo.com/shopxo/index.php?s=/index/user/login.html'
data={
    'accounts':'test1',
    'pwd':'123456'
}
headers={
    'X-Requested-With':'XMLHttpRequest'
}
r=requests.post(url=url,data=data,headers=headers)
print(type(r.cookies))
print(r.cookies['PHPSESSID']) #通过cookie的name获取

发送cookies

import requests
from pprint import pprint
url='https://www.baidu.com'

cookies={
    'PHPSESSID':'12345'
}
r=requests.post(url=url,cookies=cookies)

print(f"请求地址:{r.url}\n请求方式:{r.request.method}\n请求头:{r.request.headers}\n请求正文:{r.request.body}\n{'-'*555}\n响应头:{r.headers}\n响应正文:{r.text}\n")

相关文章

网友评论

    本文标题:requests库-Quick Start

    本文链接:https://www.haomeiwen.com/subject/qgeahltx.html