一、Mac平台安装requests库
在终端中直接执行如下命令即可(前提是已经安装好python):
$ pip install requests
执行命令后会出现如下图所示的安装信息
image.png
安装好之后可以在终端中依次执行以下代码进行验证是否安装成功:
$ python
$ import requests
$ r = requests.get('http://www.baidu.com')
$ r.status_code
$ r.text
执行命令后的结果如下图所示:
image.png
二、request库用法介绍
1、HTTP协议
HTTP(Hypertext Transfer Protocol),即超文本传输协议。HTTP URL实例:
http://www.baidu.com
http://14.215.177.39
URL是通过HTTP协议存取资源的Internet路径,一个URL对应于网上的一个唯一的数据资源。HTTP协议对资源的操作如下表所示:
方法 | 说明 |
---|---|
GET | 请求获取URL位置的资源 |
HEAD | 请求获取URL位置资源的相应消息报告,即获得该资源的头部信息 |
POST | 请求向URL位置的资源后附加新的数据 |
PUT | 请求向URL位置存储一个资源,覆盖原URL位置的资源 |
PATCH | 请求局部更新URL位置的资源,即局部替换 |
DELETE | 请求删除URL位置存储的资源 |
六种方法中的前两个是通过网络访问URL位置处的资源(“取”),另外四个是用户对URL的资源进行操作(“存”)。
2、requests库的主要方法
requests库的七个主要方法如下表所示,其中第一个是最基本的方法,其余六个是对第一个方法的封装,对于爬虫而言最常用的是下表中第2~4行的方法,即get()、head()和post()
用法 | 说明 |
---|---|
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请求 |
&emsp: requests库的相关参数介绍
1) params向提交的url中添加参数
2 ) **kwargs参数(12个访问控制参数)
data : 字典、字节序列或文件对象,作为Request的内容
json : JSON格式的数据,作为Request的内容
headers : 字典,HTTP定制头
cookies : 字典或CookieJar,Request中的cookie
auth : 元组,支持HTTP认证功能
files : 字典类型,传输文件
timeout : 设定超时时间,秒为单位
proxies : 字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects : True/False,默认为True,重定向开关
stream : True/False,默认为True,获取内容立即下载开关
verify : True/False,默认为True,认证SSL证书开关
cert : 本地SSL证书路径
>>> kv = {'key1':'value1', 'key2':'value2'}
>>> r = requests.request('GET', 'http://python123.io/ws', params=kv}
>>> print(r.url)
#http://python123.io/ws?key1=value1&key2=value2
3、通用代码框架
利用python的try except结构
url='待爬取网站的url链接'
try:
r = requests.get(url)
r.raise_for_status() # 如果返回的状态码不是200,即获取页面失败,则抛出异常
r.encoding = r.apparent_coding
return r.text
except:
return '产生异常'