Python学习笔记2.0之requests库

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)                                                                                     #文件写如

你可能感兴趣的:(Python学习笔记2.0之requests库)