python学习之requests基础

  学习地址:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html#id2

  使用requests发送网络请求

一、导入requests

  import requests

二、请求

  r=requests.get("http://www.baidu.com")

  rpost=request.post("http://www.baidu.com",data={'key':value})

  其他请求模式类似

 

详细说明

  1、在URL中使用查询字符串传递值,在URL中,数据会以键值对的形式置于URL中,跟在一个问号的后面,如:http://www.baidu.com?key=values,在requests中可以使用params关键字参数,以一个字符串字典来提供这些参数,如下:

  keyvalues={"key1":values1,"key2":values2}

  rget=requests.get("http://www.baidu.com",params=payload)

  请求地址为:http://www.baidu.com?key1=values1&key2=values2

  注意点:字典中的值为None时键也不会添加到URL的查询字符串中。

三、响应

  在请求后,可以得到服务器的响应内容

  import requests

  rpost=requests.post("http://www.baidu.com")

  ---表示将请求的响应结果对象赋值给了repost这个变量,可以通过这个对象变量查看响应的各种信息。

  rpost.text:查看响应信息;

  rpost.encoding:查看编码;

  rpost.content:查看响应内容(字节方式);

  rpost.status_code:查看响应代码

  rpost.raise_for_status()

 

  requests内置了一个JSON解码器,可以已json格式查看响应数据。

四、请求头

  如果需要添加http头部,只要简单地传递一个dictheaders参数就可以了。

 

  注意点:所有的header值必须是stringbytestringunicode。尽管传递unicode header也是允许的,但是不建议这样做。

五、Cookie

1、查看响应中的cookie

  responses.cookies

2、传递cookie

 

3cookie的返回对象是RequestsCookieJar

六、重定向与请求历史

  可以使用响应对象的history方法来追踪重定向

  response.history

  可使用allow_redirects参数禁用重定向

七、超时

  在requests请求时,应该设置timeout这个参数(单位为:秒),表示等待多少秒后定制等待响应。

 

八、错误和异常

  遇到网络问题时,requests会抛出一个ConnectionError异常

  如果返回来了不成功的状态码,Response.raise_for_status()会抛出一个httperror异常

  若请求超时,则抛出一个Timeout异常

  若超过设定的最大重定向次数,则会抛出一个TooManyRedirects异常

  所有的request显示抛出的异常都继承自requests.exceptions.RequestException

posted @ 2018-10-25 08:57  飘着的石头  阅读(506)  评论(0编辑  收藏  举报