学习地址: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头部,只要简单地传递一个dict给headers参数就可以了。

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

五、Cookie

1、查看响应中的cookie

  responses.cookies

2、传递cookie

3、cookie的返回对象是RequestsCookieJar

六、重定向与请求历史

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

  response.history

  可使用allow_redirects参数禁用重定向

七、超时

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

八、错误和异常

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

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

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

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

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

最新文章

  1. 关于input标签和placeholder在IE8,9下的兼容问题
  2. android android BitmapFactory报错OOM
  3. SqlServer基础之(触发器)
  4. 2.3属性在 ASP.NET Web API 2 路由
  5. 使用ViewBag传送数据从控制器至视图
  6. JSP隐含变量和Spring中Model在EL表达式中的读取顺序
  7. 11个Visual Studio代码性能分析工具
  8. BZOJ 4579: [Usaco2016 Open]Closing the Farm
  9. IIS调试技巧
  10. 重新想象 Windows 8 Store Apps (68) - 后台任务: 控制通道(ControlChannel)
  11. Python的交互式界面 编写 .
  12. Windows下的SVN环境搭建详解
  13. poj 2046 Gap(bfs+hash)
  14. delphi 数组复制利用CopyMemory 最为完美
  15. Golang 入门系列(一)Go环境搭建
  16. 解决PLSQL Developer 插入中文 乱码问题
  17. centos7系列-给普通用户sudo权限
  18. php会话控制技术
  19. 业余实现一个统计A股数据工具
  20. 服务注册中心Eureka vs Zookeeper vs Consul

热门文章

  1. bcdedit删除uefi多余项
  2. SpringBoot打包成jar运行脚本
  3. Python深入:编码问题总结
  4. WebApi 接口参数:传参详解
  5. jenkins复选框插件Extended Choice Parameter plugin
  6. python类库26[sqlite]
  7. java 流操作对文件的分割和合并的实例详解_java - JAVA
  8. web project 解决 中文乱码问题
  9. .net reactor 加密混淆使用办法
  10. 为什么C++中只有指针和引用才能实现多态?