crawler-02 requests库入门
requests库是python的第三方库,是目前公认的爬去网页最好的第三方库,简单简洁。
一、requests库安装使用
1、requests库安装
1 | pip install requests |
2、IDLE测试requests库
1 | >>> import requests |
可以看到百度首页的内容已被成功抓取。
3、爬取网页的通用代码框架
网页连接有风险,异常处理很重要,常见异常如下:
1 | #异常处理方法 |
通用代码框架
1 | #爬取网页通用代码框架 |
应用举例
1 | import requests |
二、requests库的7个主要方法
方法说明
http协议对对资源的操作
1、get() 方法
1 | #简单使用 |
1)Request:构造一个向服务器请求资源的Request对象;
2)Response:返回一个包含服务器资源的Response对象,包含了爬虫返回的内容;
3)Response对象:
1 | >>> import requests |
4)解码
r.encoding:其编码方式是从http header中的charset字段获取的。如果header中存在charset字段,那么说明我们访问的服务器对编码方式有要求,该编码被获取回来保存在r.encoding中;如果header中不存在charset字段,则默认编码为’ISO-8859-1’,但是该编码不能解析中文。
r.apparent_encoding:不是从http header获取编码了,而是从网页内容上分析可能出现的文本编码形式,因此这种编码比r.encoding更加准确一些。
1 | >>> import requests |
如下图:
2、patch和put的区别
3、head() 方法
用少量网络流量获取网络资源的概要信息
1 | >>> import requests |
4、post() 方法
向服务器提交新增数据,如下,字典payload保存键值对,post() 方法提交该字典。当我们向url去post一个字典或者键值对的时候,该键值对默认是保存在form表单等字段下的。
1 | >>> import requests |
假如提交的不是键值对,例如下面,提交的就是普通字符串,保存到了data字段下
1 | >>> r=requests.post('http://httpbin.org/post',data='ABC') |