一、Requests库的安装

win平台下,直接在命令行使用

pip install requests

即可进行安装

成功后测试如下

>>> import requests
>>> r = requests.get('https://www.baidu.com')
>>> print(r.status_code)
200
>>> r.text
'<!DOCTYPE html>\r\n<!--STATUS OK--><html>

二、Requests库的七个主要方法

    1. requests.requests()  用于构造一个请求,支撑以下各方法的基础方法
    2. requests.get()  获取HTML网页的主要方法,对应于HTTP的GET
    3. requests.head()  获取HTML网页头信息的方法,对应于HTTP的HEAD
    4. requests.post()  向HTML网页提交POST请求的方法,对应于HTTP的POST
    5. requests.put()  向HTML网页提交PUT请求的方法,对应于HTTP的PUT
    6. requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
    7. requests.delete()  向HTML页面提交删除请求,对应于HTTP的DELETE

三、Requests库的get()方法

get()方法是最常用的方法

requests.get(url,params=None, **kwargs)

其中:

  • url:想要获取的网页url
  • params: url中的额外参数,字典或字节流格式,如kw = {'wd': 'baidu'}, requests.get('https://www.baidu.com', kw),其中访问的地址是https://www.baidu.com/?wd=baidu, 可选参数
  • **kwargs: 12个控制访问的参数(较为少用)

四、两个重要的对象:Request和Response

对于r = requests.get(url), 其实是先构造了一个向服务器请求资源的Request对象,然后返回一个包含服务器资源的Response对象

PS:其实在requests库的源码中可以得知get是对request方法进行了封装

Response对象基本的属性:

  1. r.status_code  HTTP请求的返回状态,200表示连接成功,404表示失败
  2. r.headers 返回Response对象的头部信息
  3. r.text  HTTP响应内容的字符串形式,即,url对应的页面内容
  4. r.encoding  从HTTP header中猜测的响应内容编码方式
  5. r.apparent_encoding  从内容中分析出的响应内容编码方式(备选编码方式)
  6. r.content  HTTP响应内容的二进制形式

有一点需要注意:如果在header中不存在charset,这认为编码为ISO‐8859‐1,r.encoding将为这个编码

r.apparent_encoding为程序根据网页内容分析出的编码,若网页编码已知的话,可以省略对此处进行一点小小的优化

五、异常

Requests库的异常

  1. requests.ConnectionError  网络连接错误异常,如DNS查询失败、拒绝连接等
  2. requests.HTTPError  HTTP错误异常
  3. requests.URLRequired  URL缺失异常
  4. requests.TooManyRedirects  超过最大重定向次数,产生重定向异常
  5. requests.ConnectTimeout  连接远程服务器超时异常
  6. requests.Timeout  请求URL超时,产生超时异常

Response类的异常

r.raise_for_status()  如果不是200 这抛出异常requests.HTTPError,便于对异常的处理

-------

本文整理自嵩天老师的python系列课程,如有错误,还请斧正

Requests库整理的更多相关文章

  1. urllib、requests库整理

  2. python 常用库整理

    python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...

  3. 人生苦短之HTTP协议及Requests库的方法

    requests库的主要方法:requests.request()构造一个请求    requests.get()获取HTML网页的主要方法,对应于HTTP的GET    requests.head( ...

  4. Python常用库整理

    Python常用库整理 Python中到底有哪些库会让程序员爱不释手?以至于一次上瘾,造成永久性伤害(这句话好像在哪里见过),今天我们就来整理一番这样的库,欢迎各位在评论区或者私信我添加或者修改相关库 ...

  5. Python爬虫小白入门(二)requests库

    一.前言 为什么要先说Requests库呢,因为这是个功能很强大的网络请求库,可以实现跟浏览器一样发送各种HTTP请求来获取网站的数据.网络上的模块.库.包指的都是同一种东西,所以后文中可能会在不同地 ...

  6. Requests库上传文件时UnicodeDecodeError: 'ascii' codec can't decode byte错误解析

    在使用Request上传文件的时候碰到如下错误提示: 2013-12-20 20:51:09,235 __main__ ERROR 'ascii' codec can't decode byte 0x ...

  7. Requests库的几种请求 - 通过API操作Github

    本文内容来源:https://www.dataquest.io/mission/117/working-with-apis 本文的数据来源:https://en.wikipedia.org/wiki/ ...

  8. python脚本实例002- 利用requests库实现应用登录

    #! /usr/bin/python # coding:utf-8 #导入requests库 import requests #获取会话 s = requests.session() #创建登录数据 ...

  9. 大概看了一天python request源码。写下python requests库发送 get,post请求大概过程。

    python requests库发送请求时,比如get请求,大概过程. 一.发起get请求过程:调用requests.get(url,**kwargs)-->request('get', url ...

随机推荐

  1. luogu1373_小a和uim之大逃离 多维dp

    传送门 巧妙之处在于dp的设计只用设计差值即可,因此不会mle,枚举的顺序问题也解决了 #include <bits/stdc++.h> using namespace std; #def ...

  2. python多线程同步实例分析

    进程之间通信与线程同步是一个历久弥新的话题,对编程稍有了解应该都知道,但是细说又说不清.一方面除了工作中可能用的比较少,另一方面就是这些概念牵涉到的东西比较多,而且相对较深.网络编程,服务端编程,并发 ...

  3. JavaWeb——JSP开发2

    使用JSP+Servlet实现文件的上传和下载功能 1.文件模型 首先是文件本身,这里创建一个类记录文件的名字和内容: public class Attachment { private String ...

  4. [Spring cloud 一步步实现广告系统] 19. 监控Hystrix Dashboard

    在之前的18次文章中,我们实现了广告系统的广告投放,广告检索业务功能,中间使用到了 服务发现Eureka,服务调用Feign,网关路由Zuul以及错误熔断Hystrix等Spring Cloud组件. ...

  5. VU TPS QPS RT 计算公式

    1.背景 最近看了阿里巴巴中间件写的一篇文章,讲述了关于并发,RPS,RT之间的关系.感觉收获颇丰.自己使用JMeter工具对公式进行了验证. 2.验证 我们先来看几个基础知识定义: TPS:每秒完成 ...

  6. 如何使用WorkManager执行后台任务(下)

    0x00 WorkManager的高级用法 在上一文中已经了解到 WorkManager的基本用法之后,今天来看看它的一些高级用法: 链式任务调用 唯一任务序列 传递参数和获取返回值 0x01 链式任 ...

  7. StudyAndroid.2 Activity生命周期

    onCreate(): 当我们点击activity的时候,系统会调用activity的oncreate()方法,在这个方法中我们会初始化当前布局setContentLayout()方法. onStar ...

  8. Linux配置部署_新手向(一)——CentOS系统安装

    目录 前言 VMware 开始安装 系统安装 小结 @ 前言 最近忙过一件人生大事之后,终于稍微有点时间鼓捣东西,之前net core相关的基础已经鼓捣的差不多了,既然net core跨平台,那就来体 ...

  9. Django+zTree构建组织架构树

    树,因其清晰明了的展现形式而被广泛的使用 日常的开发过程中我们需要经常与"树"打交道,例如公司的组织架构树.服务器的项目归属树,管理后台侧边树等等,本篇文章介绍关于树的两个内容 多 ...

  10. springboot+mybatis+druid+atomikos框架搭建及测试

    前言 因为最近公司项目升级,需要将外网数据库的信息导入到内网数据库内.于是找了一些springboot多数据源的文章来看,同时也亲自动手实践.可是过程中也踩了不少的坑,主要原因是我看的文章大部分都是s ...