小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
每天一小步,成功一大步。大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习每天小知识。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要讲述Requests库的基本属性和Response的基本属性以及Requests库的异常。
requests库
requests库是目前公认的python爬取网页最好的第三方库。
主要有以下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
我们使用比较多的还是get请求和post请求。
简单来说get请求就是获取网页的内容。比我们打开一个网页,在地址栏直接输入网页地址进行跳转等。
而post请求就是向服务端提交数据,比如我们要申请QQ号的填写表单,提交操作其实就是post请求。
response = requests.get(url)
返回一个包含服务器资源的response对象。
Response属性
- response.status_code HTTP请求的返回状态,200表示成功,404则表示失败
- response.text HTTP响应的字符串形式
- response.encoding 从HTTP的header中猜测的响应内容编码
- response.apparent_encoding 从内容中分析出的响应的编码方式
- response.Content HTTP响应内容的二进制形式
看完response.encoding和response.apparent_encoding是不是有点懵,没事咱们来说点人话:
response.encoding:如果header中不存在charset属性,则默认编码为ISO-8859-1.
通过确认编码方式我们就可以显示response.text 的内容。
有时header中没有charset属性,这时我们就可以使用response.apparent_encoding,根据网页内容分析出的编码方式,可以作为response.encoding来使用。例如:response.apparent_encoding = response.encoding
Requests库的异常
- requests.ConnectionError 网络连接异常
- requests.HTTPError HTTP错误异常
- requests.URLRequired URL缺失异常
- requests.TooManyRedirects 重定向异常
- requests.ConnectTimeout 连接服务器超时异常
- requests.Timeout 请求URL超时异常
- requests.raise_for_status 如果不是200,则产生requests.HTTPError异常
结语
以上就是Requests库的一些基础知识一些总结,需要熟练了解,这样才能更好的使用。希望对读者有所帮助。如有不正之处,欢迎掘友们批评指正。