目录
pip install requests
#使用清华园镜像安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
import requests
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() # 爬完数据,请务必要关闭
方法 | 作用 |
---|---|
requests.request(method,url,**kwargs) | 创建和发送一个请求,通用方案 |
requests.get() | 发送get请求,对应http的get方法 |
requests.post() | 发送post请求,对应http的post方法 |
requests.head()???????? | 获取网页的头信息,对应http的HEAD方法 |
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证书路径; |
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的转换; |
注意:★★★★★
- encoding属性: 如果header中不存在charset,则认为是ISO-8859-1编码;
- text属性:根据encoding属性的编码方式显示网页内容;
- 当编码方式不一致,可能会出现乱码;
- apparent_encoding属性:是根据网页内容分析出的编码方式;看做encoding属性的备选;
异常 | 说明 |
---|---|
requests.ConnectionError | 网络连接异常,如:拒绝连接,DNS查询失败等 |
requests.HTTPError???????? | http错误异常 |
requests.URLRequired | URL缺失异常 |
requests.ToolManyRedirects | 超过最大重定向次数,产生重定向异常 |
requests.ConnectTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时异常 |
response对象提供了一个raise_for_status()方法,该方法内部对status_code进行判断,如果状态码不是200 ,则抛出HttpError异常;