花费了三天时间,学习了python基础的爬虫框架,现在终于明白了python爬虫的具体过程。原先只是觉得爬虫很厉害,但忘记了在计算机中用程序实现的任何功能都是通过代码一行一行敲出来的,爬虫也不例外。下面开始重新学习爬虫涉及的详细内容。
1.爬虫中最基本的语句:r = requests.get(url),该语句是构造一个向服务器请求资源的Request对象,如果请求成功将返回一个包含服务器资源的Response对象(r)。requests的完整使用方法为requests(url,params=None,*Kwargs)其中url为将要获取页面的url链接;params为url中的额外参数,包括字典或字典流格式,为可选的; Kwargs为12个控制访问的参数。
2.在Response对象中有常用的5个属性,其中分别为r.status_code 表示HTTP请求的返回状态,200表示连接成功,404表示失败;r.text表示HTTP响应内容的字符串格式,即url对应的页面内容;r.encoding表示从HTTP header中猜测的响应内容编码方式;r.apparent_encoding 表示从内容分析出的响应内容编码方式(备选编码方式);r.content表示HTTP想要内容的二进制形式。
3.Requests库的异常 requests.ConnectionError 表示连接错误异常,如DNS查询失败,拒绝连接等;requests.HTTPError HTTP错误异常;request.URLRequired表示URL缺失异常;requests.TooManyRedirects 超过最大重定向次数,产生重定向异常;requests.ConnectTimeout表示远程服务器超时异常;requests.Timeout 表示请求URL超时,产生超时异常。
下面给出最简单的爬虫通用框架:

python 爬虫 部分元素 none python爬虫语句_HTML


4.Requests库的7个主要方法:
requests.request() 表示构造一个请求,时支撑以下各方法的 基础方法;
requests.get() 表示获取HTML网页的主要方法,对应于HTTP的GET;
requests.head()表示获取HTML网页头信息的方法,对应于HTTP的HEAD;
requests.post()表示向HTML网页提交POST请求的方法,对应于HTTP的POST;
requests.put()表示向HTML网页提交PUT请求的方法,对应于HTML的PUT;
request.patch()表示向HTML网页提交局部修改请求,对应于HTTP的PATCH;
requests.delete()表示向HTML页面提交删除请求,对应于HTTP的DELETE请求。
这里需要理解HTTP协议,HTTP是一个基于“请求与响应”模式的无状态的应用层协议。HTTP协议如下:
URL格式 http://host[:port][path]
hoast:合法的Internet主机域名或IP地址;
port:端口号,缺省端口为80;
path:请求资源的路径;
HTTP协议对资源的操作有如下功能:
GET 请求获取URL位置的资源;HEAD请求获取URL位置资源的响应消息后,即获取该资源的头部信息;POST请求向URL位置的资源后附加新的数据;PUT请求向 URL位置存储一个资源,覆盖URL位置的资源;PATCH请求局部更新URL位置的资源,即改变该处资源的部分内容;DELETE请求删除URL位置存储的资源。
理解完HTTP协议对资源操作的功能后就发现HTTP协议与Requests库方法是一一对应的。
5.下面对requests.request(method,url,**kwargs)进行详细介绍:
method:请求方式,对应get/put/post等7种;url:拟获取页面的url链接;
.*kwargs:控制访问的参数,共13个,其中包含:
params: 字典或者字节序列,作为参数增加到url中。

python 爬虫 部分元素 none python爬虫语句_python 爬虫 部分元素 none_02


data:字典、字节序列或文件对象,作为Requests内容。向服务器提交资源时使用。

json:json格式的数据,作为Request的内容;

headers:字典的数据类型,HTTP定制头,像http的url发起时表明头字段,用于模拟浏览器类型,访问服务器。

cookies:指的是从http协议中解析cookie,其类型为字典或者CookieJar;

auth:元组,支持HTTP认证功能;

files:字典类型,用于传输文件;

timeout:设定超时时间,以秒为单位。

proxies:字典类型,设定访问代理服务器,可以增加登陆认证。使用该字段可以有效的隐藏用户的IP地址。

allow_redirects:True/False.默认为True,重定向开关。

stream:True/False,默认为True,获取内容立即下载;

verify:True/False:默认为True,认证SSL证书开关。

cert:本地SSL证书路径。