Requests——让HTTP服务人类
一、Requests简介
1. requests库简介
Urllib 和 Requests 模块是发起 http 请求最常见的模块。
虽然 Python 的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称“http for Humans”,说明使用更简洁方便。
Requests继承了urllib的所有特性。Requests支持http连接保持和连接池,支持使用cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数 据自动编码。
**requests 的底层实现其实就是 urllib3(urllib2 的升级版—python2 支持) **
Requests 的文档非常完备,中文文档也相当不错。Requests 能完全满足当前网络的需求, 支持 Python 2.6—3.6。
开源地址:http://github.com/kennethreitz/requests
中文文档 API:http://2.python-requests.org/zh_CN/latest/
2. 安装方式
利用 pip 安装或者利用 easy_install 都可以完成安装:
$ pip install requests
二、GET请求
- 导入requests
- 发送请求,返回响应
- 确定请求的URL
- 确定请求方式get
- 保存文件(html)
1. 全页面保存
例:将百度产品大全页面保存到本地
import requests
response = requests.get(url='https://www.baidu.com/more/')
with open('百度产品大全.html','w',encoding='utf-8') as fp:
fp.write(response.text)
发现问题:
- 中文乱码
- 图片不显示
解决:
- 中文乱码:最根本原因是编码问题
content:获取页面二进制类型内容,使用content.decode(‘编码格式’),默认是utf-8大部分网页都是使用utf-8或者是gbk,解码时,尝试使用utf-8,如果乱码没有解决,换成gbk基本可以。如果还没有解决,使用response.encoding来解决
import requests
response = requests.get