一、requests库入门
1、Requests库的7个主要方法(对应HTTP的方法)
requests.request(method, url,**kwargs )
构造一种请求,支撑一下各方法的基础方法
(**kwargs
:控制访问的参数,均为可选项,包括params
:字典或字节序列;data
:字典、字节序列或文件对象;json
:jion格式的数据;headers
:字典,HTTP定制头;cookies
:字典或CookieJar;auth
:元组,支持HTTP认证;files
:字典类型,传输文件;timeout
:设定超时时间,s为单位;proxies
:字典类型,设定访问代理服务器;allow_redirects
:True/False,默认为True,重定向开关;stream
:True/False,默认为True,获取内容立即下载开关;verify
:True/False,默认为True,认证SSL证书开关;cert
:本地SSL证书路径)
requests.get(url,params=None,**kwargs)
获取HTML网页的主要方法,(请求获取URL位置的资源)
requests.head(url,**kwargs)
获取网页头信息的方法,(请求获取URL位置资源的响应消息报告)
requests.post(url,data=None,json=None,**kwargs)
向HTML网页提交POST请求的方法,(请求向URL位置的资源后附加新的数据)
requests.put(url,data=None,**kwargs)
向HTML网页提交PUT请求的方法,(请求向URL位置存储一个资源,覆盖原URL位置的资源)
requests.patch(url,data=None,**kwargs)
向HTML网页提交PATCH请求的方法,(请求局部更新URL位置的资源,即改变该处资源的部分内容)
requests.delete(url,**kwargs)
向HTML网页提交DELETE请求的方法,(请求删除URL位置的资源)
2、两个对象(Response和Request对象)
1)Response对象的属性
r.status_code
-HTTP的请求返回状态,200表示连接成功,404表示失败
r.text
-HTTP响应的字符串形式,即,url对应的页面内容
r.encoding
-从HTTP header中猜测的响应内容编码方式
r.apparent_coding
-从内容分析出的响应内容的编码方式
r.content
-HTTP响应内容的二进制形式
重要方法:r.raise_for_status()
3、异常与通用框架
requests.ConnectionError
-网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPError
-HTTP错误异常;requests.URLRequired
-URL缺失异常;
requests.TooManyRedirects
-超过最大重定向次数,产生重定向异常;
requests.ConnectTimeout
-连接远程服务器超时异常;
requests.Timeout
-请求URL超时,产生超时异常
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
4、易错点(☆保留★
)
二、robots协议
1、网络爬虫的限制:
1)来源审查:判断User—Agent进行限制
2)发布公告:Robots协议(告知所有爬虫网站的爬取策略,要求爬虫遵守)
2、Robots协议
1)形式:在网站根目录下的robots.txt文件
http://www.baidu.com/robots.txt
/http://news.sina.com.cn/robots.txt
/
http://www.moe.edu.cn/robots.txt (无robots协议)
2)基本语法