目录
1、requests库简介
2、requests库-安装
3、requests库-使用
3.1 导入模块
3.2 发送请求
3.3 requests库常用方法
3.4 访问控制参数kwargs
4、请求返回对象 Response
5、requests访问时的可能异常
1、requests库简介
- requests是一个http的第三方请求库,发送http请求,并获取响应结果;
2、requests库-安装
pip install requests
#使用清华园镜像安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
3、requests库-使用
3.1 导入模块
import requests
3.2 发送请求
import requests # 安装好requests后,导入模块
url = 'https://www.baidu.com'
headers = {'content': 'text/html;charset=utf-8'}
resp = requests.get(url, headers)
print(resp) # <Response [200]> 代表OK
resp.encoding = 'utf-8' # 定义响应对象的编码
print(resp.text)# 打印网页数据
resp.close() # 爬完数据,请务必要关闭
3.3 requests库常用方法
方法 | 作用 |
---|---|
requests.request(method,url,**kwargs) | 创建和发送一个请求,通用方案 |
requests.get() | 发送get请求,对应http的get方法 |
requests.post() | 发送post请求,对应http的post方法 |
requests.head() | 获取网页的头信息,对应http的HEAD方法 |
3.4 访问控制参数kwargs
resp = requests.request('get',url, **kwargs)
kwargs参数 | 作用 |
---|---|
params | 字典类型,作为参数增加到url ; get方法参数传递 |
data | 字典 / 字节序列 / 文件对象,作为Requests对象的内容; post方法参数传递; |
json | json格式的数据,作为Requests的内容; 前后端分离以json参数上传数据; |
headers | 字典类型,HTTP定制头,例如设置User-Agent; |
cookies | 字典或者CookieJar,Request中的cookie |
auth | 元组,支持HTTP认证功能; |
files | 传输文件,字典类型; key:参数名,value:文件对象; |
timeout | 设定超时事件,单位为秒; |
proxies | 字典类型,设定访问代理服务器; |
allow_redirects | 是否允许重定向,默认:True; |
stream | 是否以字节流形式获取内容并下载; 下载文件时候使用; |
verify | 是否验证SSL证书,默认为True; |
cert | 本地SSL证书路径; |
4、请求返回对象 Response
resp = requests.request('get',url, **kwargs);
resp:响应对象,一个包含服务器资源的响应对象;
属性 | 作用 |
---|---|
resp.request | 获取Http请求对象 ;返回: <PreparedRequest [GET]> |
resp.status_code | http请求返回状态码 ; 200表示成功; |
resp.text | http响应的字符串形式; |
resp.content | http响应的二进制形式;例如:图片,音频,视频等; |
resp.encoding | 从http的header中响应编码方法; |
resp.apparent_encoding | 从内容中分析响应内容编码方式;(备选编码方式) |
方法 | 作用 |
resp.raise_for_status() | 该方法内部判断resp.status_code == 200,不等则抛异常 |
resp.json() | 得到对应的json格式数据; 补充:Python有json模块,可以实现字符串和json的转换; |
注意:★★★★★文章来源:https://www.toymoban.com/news/detail-808324.html
- encoding属性: 如果header中不存在charset,则认为是ISO-8859-1编码;
- text属性:根据encoding属性的编码方式显示网页内容;
- 当编码方式不一致,可能会出现乱码;
- apparent_encoding属性:是根据网页内容分析出的编码方式;看做encoding属性的备选;
5、requests访问时的可能异常
异常 | 说明 |
---|---|
requests.ConnectionError | 网络连接异常,如:拒绝连接,DNS查询失败等 |
requests.HTTPError | http错误异常 |
requests.URLRequired | URL缺失异常 |
requests.ToolManyRedirects | 超过最大重定向次数,产生重定向异常 |
requests.ConnectTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时异常 |
response对象提供了一个raise_for_status()方法,该方法内部对status_code进行判断,如果状态码不是200 ,则抛出HttpError异常;文章来源地址https://www.toymoban.com/news/detail-808324.html
到了这里,关于python爬虫02-requests库使用01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!