一 Requests的介绍
爬取网页最好的python库,官网描述:Requests is an elegant and simple HTTP library for Python, built for human beings.
二 安装方法
直接使用:pip install requests
三 Requests基本使用
1. Requests库的7个主要方法
方法 | 说明 |
requests.request() | 构造一个请求,支撑以下各方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.head() | 获取HTML网页头信息的方法,对应于HTTP的HEAD |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requests.delete() | 向HTML页面提交删除请求,对应于HTTP的DELETE |
2. 使用demo
3. Response对象的基本属性
属性 | 说明 |
r.status_code | HTTP请求的返回状态,200表示连接成功,404表示失败 |
r.text | HTTP响应内容的字符串形式,即,url对应的页面内容 |
r.encoding | 从HTTP header中猜测的响应内容编码方式 |
r.apparent_encoding | 从内容中分析出的响应内容编码方法 |
r.content | HTTP响应内容的二进制形式 |
4. Requests库的异常
异常 | 说明 |
requests.ConnectionError | 网络连接错误异常,如DNS查询失败,拒绝连接等 |
requests.HTTPError | HTTP错误异常 |
requests.URLRequired | URL缺失异常 |
requests.TooManyRedirects | 超过最大重定向次数,产生重定向异常 |
requests.ConnectTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时异常 |
5. 爬取通用代码框架
四 Requests查漏补缺
1. 更加复杂的POST请求
【tips1】如果发送一个非常大的文件作为form-data请求,那就要将请求做成数据流,第三方包支持requests-toolbelt。
【tips2】HTTP头部大小写不敏感。
2. 重定向问题
默认情况下, 除了HEAD,Requests会自动处理所有重定向,如果使用的是其他的请求,可以通过allow_redirects参数禁用重定向处理。
3. 超时问题
【tips】timeout --> 明确告诉requests在经过以timeout参数设定的秒数后停止等待相应,基本上所有的生产代码都应该使用这一参数,如果不使用,你的程序可能会永远失去响应。
五 Requests的高级用法