python爬虫涉及的库

特性 规模
Requests 小规模、数据量小,爬取速度不敏感 网页
Scrapy 中规模、数据量较大,爬取速度敏感 网站
定制开发 大规模,搜索引擎,爬取速度关键 爬取全网

首先介绍Requests库

Requests库安装

打开命令行程序,pip install requests

Request库的介绍

Requests的使用

首先涉及到requests的get方法,通过get()向服务器发出HTTP请求

r = requests.get(url,param=None,kwargs)
除了url其他两个参数
可选**,返回的r为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
r.apparent_encoding比r.encoding准确

测试Response对象的属性
打开命令行格式,输入python,导入requests包

调用get方法向服务器发出http请求,调用 r.status_code属性查看服务器连接状态 200为成功

小白学爬虫(一)
通过r.text 属性获取请求的http的页面内容

小白学爬虫(一)
发现乱码,输入r.encoding 查看我们的编码格式
再输入r.apparent_encoding查看内容格式
发现两次格式内容不同,将r.encoding的格式修改为r.apparent_encoding编码格式,再输入r.text,发现乱码消失

小白学爬虫(一)

Requests抛出的异常

异常 含义
requests.ConnectionError 网络连接异常,DNS查询失败,拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequeired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时异常

r.raise_for_status()获取异常

Requests库的7个主要方法

方法 含义
requests.request(method,url,**kwargs) 构造一个请求,支撑以下各方法的基础
requests.get(url,params=None,**kwargs) 获取HTML页面的主要方法,对应HTTP的GET
requests.head(url) 获取HTML网页头信息的方法,对应HTTP的HEAD
requests.post(url,data=None,json=None,**kwargs) 向HTML页面提交POST请求的方法,对应于HTTP的POST
requests.put(url,data=None,**kwargs) 向HTML页面提交PUT请求的方法,对应于HTTP的PUT
requests.patch(url,dara=None,**kwargs) 向HTML提交局部修改请求,对应于HTTP的PATCH
requests.delete(url,**kwargs) 向HTML页面提交删除请求,对应于HTTP的DELETE

head()方法获取网页头部,利用属性text获取内容时则为空。
小白学爬虫(一)

PATCH和PUT的区别:
假设URL有一组数据User Info包括UserId、UserName等20个字段,用户只修改了UserName,其他不变。
PATCH节省网络带宽

  1. 可以采用PATCH方法,仅向URL提交UserName的局部更新请求
  2. 如果采用PUT方法,必须将所有20个字段一并提交,否则未提交的字段将会被删除

requests的请求方式

requests.request(method,url,kwargs)
method:请求方式
**url:**获取页面的url连接
**kwargs:访问控制参数,一共有13个,均为可选项
requests.request(‘GET’,url,**kwargs)
requests.request(‘HEAD’,url,**kwargs)
requests.request(‘POST’,url,**kwargs)
requests.request(‘PUT’,url,**kwargs)
requests.request(‘PATCH’,url,**kwargs)
requests.request(‘delete’,url,**kwargs)
requests.request(‘OPTIONS’,url,**kwargs)

kwargs的13个访问控制参数

参数 含义
params 字典或字节序列,作为参数增加到URL链接后
data 字典、字节序列或文件对象,作为Request的内容,放在URL对应的地方作为数据
json JSON格式的数据,作为Request的内容,向服务器提交
header 字典,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证书路径
  1. params
    小白学爬虫(一)
  2. data
    小白学爬虫(一)

相关文章: