这是我学习python爬虫时所写的一些代码和总结
- 一个url对应网络上的一个资源
- 浏览器通过http协议进行相应的资源传输
- 通过url和命令管理资源, 每次操作独立无状态, 网络通道及服务器成为了黑盒子
说明:Requests库中的7个方法分别对应http协议中的7个方法
- 命令 pip install requests
- 模块最基本的方法是request方法,其它6个方法都是以该方法作为基本方法,并设定一定的默认参数所形成的方法,所以也可以说request库中只有一个方法
- request的执行过程是,构造一个向服务器请求资源的request对象,然后服务器响应返回一个包含服务器资源的response对象, 由于其它6个方法都是以request为基本的方法,所以其它6个方法的流程也是如此
- status_code:http请求的返回状态 200代表连接成功,其它和404都是失败
- text: url对应页面内容文本形式
- encoding: 从http header中猜测的响应内容的编码方式(charset字段标明,如果没有则为iso-8859-1)
- apparent_encoding: 从内容中分析出编码方式,通常更可靠
- content http响应内容的2进制形式
- request()构造一个请求, 支撑该模块中的其它方法
- get() 原型:
request.get(url, params=None, ** kwargs)
params 是url中的额外参数, kwarges是12个控制访问参数 原理 源码def get(url, params=None, **kwargs) kwargs,setdefault('allow redirects', True return request('get', params=params, **kwargs)
获取html网页的主要方法,对应http协议的GET() - head()获取html网页的头信息的方法
- post()向网页中提交post请求的方法
- put向网页中提交put请求的方法
- patch() 向网页中提交局部修改请求的方法
- delete() 向网页中提交删除请求的方法
- params 用params = {'key1':'value1'}, 这样就可以在url后面构造参数
- headers = hd, 可以在字典hd总制定需要更改的headers属性,常常更改user-agent字段来伪装成浏览器
- 通常是使用response对象中的raise_for_status()方法检测,如果不是200,则抛出异常
- ConnectionError 网络连接错误,dns查询失败,拒绝连接等
- HttpError http错误异常
- URLRequired url缺失异常
- TooManyRedirects 重定向异常
- 等等