介绍
官方的文档介绍:requests是一个非转基因的Python HTTP 库。功能强大,语法简洁。
Requests继承了urllib的所有特性。Requests支持http连接保持和连接池,支持使用cookie保持会话,
支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码。
中文文档地址 https://requests.readthedocs.io/zh_CN/latest/
安装
pip install resquests
import requests
r = requests.get('http://www.baidu.com')
print(r.status_code)
requests的三个参数介绍
requests.request(method,url,**kwargs)
- method:请求方法,对应get/put/post/delete/head/patch/options
- url :请求的url地址
- **kwrags:控制访问的参数,共13个,均为可选项
请求方式
方法 | 说明 |
---|
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requests.delete() | 向HTML页面提交删除请求,对应于HTTP的DELETE |
requests.head() | 获取HTML网页头信息的方法,对应于HTTP的HEAD |
requests.request() | 构造一个请求,支撑以下各方法的基础方法 |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
Response对象属性
属性 | 说明 |
---|
r.status_code | HTTP请求的返回状态,200表示连接成功,404表示连接失败 |
r.text | HTTP响应内容的字符串形式,(url页面的内容) |
r.encoding | 从HTTP header中获取响应内容的编码方式 |
r.apparent_encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
r.content | 从HTTP 响应内容的二进制形式 |
可选参数属性
方法 | 介绍 |
---|
params | 字典或者字节序列,作为参数增加到url中 |
data | 字典、字节、或文件对象,作为request |
json | JSON格式的数据,作为request的内容 |
cookies | 字典或CookieJar,request中的cookie |
auth | 元组,支持HTTP认证功能 |
files | 字典类型,传输文件 |
tiemout | 设定时间 |
proxies | 字典类型,设定访问代理服务器,可以增加登录认证 |
allow_redirects | True/False,默认为True,重定向开关 |
stream | True/False,默认为True,获取内容立即下载开关 |
verify | True/False,默认为True,认证SSL证书开关 |
cert | 本地SSL证书路径 |
requests库的异常
异常 | 说明 |
---|
requests.ConnectionError | 网络连接错误异常,如DNS查询失败、拒绝连接等 |
requests.HTTPError HTTP | 错误异常 |
requests.URLRequired URL | 缺失异常 |
requests.TooManyRedirects | 超过最大重定向次数,产生重定向异常 |
requests.ConnectTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时异常 |
r.raise_for_status() | 如果不是200,产生异常 requests.HTTPError |
案例(一)-爬取百度首页
import requests
r = requests.get(url="https://www.baidu.com/",)
print(r.status_code)
print(r.headers)
print(r.text)
print(r.encoding)
print(r.apparent_encoding)
print(r.content)
"""
可复制代码 挨个打印查看效果
"""
案例(二)-爬取百度图片
import requests
img_response = requests.get(url="http://k.sinaimg.cn/m1/maxwidth.2880/m1.sinaimg.cn/0bdec5881ba749e3a2a79d1a8e4f00ae_640_356.jpg/w700h350z1l10t108ee.jpg", verify=False)
with open('爬取图片.jpg','wb') as fp:
fp.write(img_response.content)
"""
url可以更换成自己项爬取的图片url
"""
最后 介绍requests通过爬虫框架
import requests
def getHTML(url):
try:
r = requests.get(url,timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
print("异常")
if __name__ == '__main__':
url = 'http://www.baidu.com'
r = getHTML(url)
print(r)