1.发送请求:
不管乍样先import requests 再说,然后再取一个responce的对象(随便取名字),
r=requests.get("url")
像这样发送请求(还有其他请求如:put ,delete,head,options,post)
2.传递URL参数
如果手写的话 ,数据以键/值的形式置于URL中,跟在一个?后面,如 : httpbin.org/get?key=val
用requests库的话可以使用params关键字参数,以一个字符串字典来提供这些参数,如:传递key1=value1和key2=value2到·httpbin.org/get
用如下代码
payload={'key1':'value1','key2':'value2'}
r=requests.get("http://httpbin.org/get",params=payload)
还可以讲列表作为值传入
如:
payload={'key1':'value1','key2':['value2','value3']}
也可以传递表单:
formdata={
' ': ' ' #表单的内容主要是个人验证信息
}
r=requests.get("url",data=formdata)
3.响应内容:
requests会自动解码来自服务器的内容
请求发送后,requests会基于HTTP头部对响应内容进行推测,当访问人r.text后,requests会使用其推测的文本编码,(听起来完全是全自动的)
下面是手动的部分了,当不能正确解析r.text的时候,就是编码属性对不上了。
我们要通过r.content来找到编码,然后设置r.encoding为相应的编码。
如果要定制编码的话,先创建自己的编码并用codecs模块(emmmm)进行注册,就可以使用这个解码器的名称作为r.encoding的值了。
4.二进制响应内容
以字节方式访问请求响应体(对于非文本请求):
r.content
requests会自动解码gzio和deflate传输编码的响应数据(天啦,不得不说requests老厉害了)
如:以请求返回的二进制数据创建一张图片,可用如下代码(一个栗子)
import requests
r = requests.get("url", headers={})
type(r.content)
with open("testmaybe23.jpg", "wb") as f: #文件读入
f.write(r.content) #文件写如