一、GET请求
requests.get(url,params=None,**kwargs)
- url:拟获取页面的url链接
- params:url中的额外参数,字典或者字节流格式,可选
- **kwargs:12个可控制访问的参数
import requests
#不带参数的get请求
requests.get('http://www.baidu.com')
#带参数的get请求方式一
requests.get('http://www.baidu.com/s?cl=3&baidutop10&fr=top100')
#带参数的get请求方式二
data={
'name':'germey',
'age':22
}
response=requests.get('http://www.baidu.com',params=data)
二、POST请求
- 一个正常的post请求主要包含请求行、请求头、请求主体
- Content-Type的格式主要有四种:applicaton/x-www-form-urlencoded与application/json、text/xml、以及multipart/form-data格式
1)applicaton/x-www-form-urlencoded数据格式
requests支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给requests.post()的data参数即可
import requests
datas={'parameter1':'12345','parameter2':'23456'}
r=requests.post(url=url,data=data)
2)application/json数据格式
application/json格式的请求头是指用来告诉服务端post过去的消息主体是序列化后的json字符串
import requests
import json
data={'parameter1':'12345','parameter2':'23456'}
data=json.dumps(data)
r=requests.post(url=url,data=data)
applicaton/x-www-form-urlencoded和application/json的最大差别在于请求主体的构造格式,前者是字典传入,后者为json字符串格式
3)text/xml数据格式
xml="""my xml """
headers={'Content-Type':'application/xml'}
requests.post(url,data=xml,headers=headers)
#或者把xml作为一个文件来传输
4)multipart/form-data数据格式
除了传统的application/x-www-form-urlencode表单,我们另一个经常用到的是上传文件用的表单,这种表单的类型为multipart/form-data.
url=‘http://www.example.com’
files={‘file’:open(’./data.xlsx’,‘rb’)}
r=requests.post(url,files=files)
三、requests中遇到问题
- 获取cookie
# -*- coding:utf-8 -*-
#获取cookie
import requests
import json
url = "https://www.baidu.com/"
r = requests.get(url)
#将RequestsCookieJar转换成字典
c = requests.utils.dict_from_cookiejar(r.cookies)
print(r.cookies)
print(c)
for a in r.cookies:
print(a.name,a.value)
>> 控制台输出:
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
{'BDORZ': '27315'}
BDORZ 27315
- 发送Cookie
# -*- coding:utf-8 -*-
#发送cookie到服务器
import requests
import json
host = "*****"
endpoint = "cookies"
url = ''.join([host,endpoint])
#方法一:简单发送
# cookies = {"aaa":"bbb"}
# r = requests.get(url,cookies=cookies)
# print r.text
#方法二:复杂发送
s = requests.session()
c = requests.cookies.RequestsCookieJar()
c.set('c-name','c-value',path='/xxx/uuu',domain='.test.com')
s.cookies.update(c)
推荐文章:https://www.cnblogs.com/zhengyao9236/p/11122446.html