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
下面六个都是通过调用第一个函数来实现的
r = requests.get(url)
构造一个向服务器请求资源的Request对象
返回一个包含服务器资源的Response对象
requests.get(url,params=None,**kwargs)
url:拟获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数
Response对象包含爬虫返回的内容
Response对象的属性:
r.status_code HTTP请求的返回状态,200表示成功,404(其他)都表示失败
r.text HTTP相应内容的字符串形式,即,url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
如果header中不存在charset,则认为编码方式为ISO-8859-1
当encoding不能正确显示内容的时候就应该使用apparent_encoding
Request库异常:
request.ConnectionError 网络连接异常
request.HTTPError HTT 错误异常
request.URLRequired URL缺失异常
request.TooManyRedirects 超过最大重定向次数,重定向异常
request.ConnectionTimeout 连接远程服务器超时异常
request.Timeout 请求URL超时,超时异常
HTTP 超文本传输协议
URL格式 http://host[:port][path]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
HTTP协议对资源的操作:
GET:请求获取URL位置的资源
HEAD:请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST:请求向URL位置的资源后附加新的数据
PUT:请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE:请求删除URL位置存储的资源
如果是要修改一组数据中的一部分字段,用PATCH只需要向URL提交该部分局部更新请求,如用PUT必须将整组数据的所有字段一并提交到URL,未提交的字段将会被删除
PATCH最主要好处:节省网络带宽
HTTP协议与Request库功能一致
**kwargs:控制访问的参数,以下为可选项:
params:字典或字节序列,作为参数增加到url中
data:字典、字节序列或文件对象,作为Request的内容
json:JSON格式的数据,作为Request的内容
headers:字典,HTTP定制头
cookies:字典或CookieJar,Request中的cookie
auth:元组,支持HTTP认证功能
file:字典类型,传输文件
timeout:设定超时时间,秒为单位
proxies:字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects:True/False,默认为True,重定向开关
stream:True/False,默认为True,获取内容立即下载开关
verity:True/False,默认为True,认证SSL证书开关
cert:本地SSL证书路径
requests.head(url,**kwargs)
requests.post(url,data=Node,json=None,**kwargs)
requests.put(url,data=Node,**kwargs)
requests.patch(url,data=Node,**kwargs)
requests.delete(url,**kwargs)
Robot协议:决定哪些内容可以被爬取