Python爬虫学习(1)-Requests库入门
作为学习的自我总结,学习的课程是“中国大学MOOC”上的《Python网络爬虫与信息提取》,文中的一些图也是截取自该课程,课程链接Python网络爬虫与信息提取。禁止任何商用,就是学习交流,感兴趣的可以参加该课程。
-
Requests库中的主要方法
-
requests.get()方法
形式:
其中r.encoding是从HTTP的header的charset的字符段来猜测网页的编码,不存在该字段就是认为ISO-8859-1。
r.apparent_encoding根据网页的内容来分析得到编码方式,应该来说更加准确。
Requests库的异常
其中ConnectTimeout指的只是链接远程服务器超时;而Timeout指的是整个包括链接与获取内容的超时。
而且**r.raise_for_status()**在方法内部来判定r.status_code是否等于200,不需要判断句式就可返回异常错误,返回requests.HTTPError.
为了使得爬取网页更加稳定有效,使用通用代码框架:
```python
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return"出现异常“
- HTTP协议的理解
超文本传输协议,基于”请求与响应“模式的,无状态的应用层协议。也就说用户发起请求远程服务器响应;两次请求间无关联,协议在TTP协议之上。
URL格式:http://host[:port][path]
host:主机域名或IP地址
port:端口号,省却为80
path:请求资源的路径
所以,URL可以理解为HTTP协议存取资源的一个在internet上的路径,类似于文件夹路径,一个URL代表一个数据资源。
- HTTP协议对资源的操作
其中patch方法可以只针对URL位置资源的某一点进行修改,所以能很好的节省网络带宽。
- Requests库的7个主要方法的具体解析
以最基础的request()方法来进行说明,其他六个就是他的某一分支可以这么说
method:‘GET’,‘HEAD’,‘POST’,‘PUT’,‘PATCH’,‘delete’,'OPTIONS’总共7中。
**kwargs:参数可选项,一共13个:
params:字典或字节序列,作为参数增加到URL中,对URL进行修改的字段;
data,json,headers:分别是字典/字节序列/文件对象,JSON格式的数据作为Request的内容。headers就是用于修改HTTP头文件。
cookies:字典或CookieJar,用于修改Request中的cookie。
auth:元组,支持HTTP认证功能
files:字典类型,传输文件
timeout:设定超时时间,以秒为单位,超过就抛出Timeout错误
proxies:字典类型,设定访问代理服务器,用于防止逆爬虫的追踪,还可以增加登录认证
allow_redirects,stream,verify:用于设定一些开关的参数包括重定向,内容立即下载,SSL证书开关。
cert:本地SSL证书路径。
剩下的6个函数就是专门把一些常用的功能拿出来,其他的参数继续可选
由于网络安全,URL一般不允许修改,所以最常用 的就是get()和head()两个函数。