requests发送post、get请求
程序员文章站
2022-04-15 12:15:28
...
1、最基本的POST请求可以使用post方法
response = requests.post("http://www.baidu.com",data=data)
2、穿入data
这时候就不要使用urlencode进行编码了,直接穿入一个字典进去就可以了。比如请求拉勾网的数据的代码
import request
url = "https://www.lagou.com"
header ={
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}
data = {
'first':'true',
'pn':1,
'kd':'python'
}
resp = requests.post(url,header = header, data = data)
#如果使用代理
resp = requests.get(url,header = header,proxies=proxy)
#如果是json数据,直接可以调用json方法
print(resp.json())
#发送post请求
发送post请求非常简单。直接调用'request.post'方法就可以了
如果返回的是json数据。那么可以调用'response.json()'
来将json字符串转换为字典或列表
requests处理cookie信息
cookie:
如果在一个相应包含了cookie,那么可以利用cookies属性拿到这个返回的cookie值:
import requests
url = 'http://www.XXX.com'
data = '{"email":"[email protected]","password":"python"}'
resp = requests.get('http://www.baidu.com')
print(resp.cookies)
print(resp.cookies.get_dict())
session:
之前使用urllib库,是可以使用opener发送多个请求,多个请求之间是可以共享cookie的。那么如果使用requests,也要达到共享cookie的目的,那么可以使用requests库给我们提供的session对象。这里的session不是web开发中的那个session,这个地方只是一个会话的对象而已。
#登录
session = requests.session()
session.post(url,data = data,header=header)
resp = session.get('http://www.renren.com')
print(resp.text)