美文网首页
Python学习笔记2.0之requests库

Python学习笔记2.0之requests库

作者: 芋圆1号 | 来源:发表于2017-12-08 11:46 被阅读0次

    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库

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