PYTHON网络爬虫笔记------Requests库的一些常用方法详解

我们知道,在python网络爬虫上有一个库特别重要,在网站的爬取上,我们常用到python的requests这个第三方库,这也被称为是“获取网页的爬虫的最好的第三方库”。

一、Requests库的七个主要方法

方法说明
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

注:requests.request()是最为基础的一个方法,其他六个方法基本上都是以这个方法为基础搭载而成的。

二、对上面的方法的简单介绍(用法)

1.requests.request(method,url,^kwargs)

2.requests.get(url,params=None,^kwargs)

3.requests.head(url,params=None,^kwargs)

4.requests.post(url,data=None,json=None,^kwargs)

5.requests.put(url,data=None,^kwargs)

6.requests.patch(url,data=None,^kwargs)

7.requests.delete(url,^kwargs)

参数就如以上所示,与HTTP中的参数相互对应。以下给出上面参数的意思:

参数名意义
params字典或字节序列,作为参数增加带url中
data字典、字节序列或者文件对象,作为Request的内容
JsonJSON格式的数据,作为Request的内容
headers字典,HTTP定制头(可用来模拟浏览器对服务器发起模拟行为、操作)
cookies字典或cookieJar,Request中的cookie
auth参数为元组类型,支持HTTP认证功能
files字典类型,传输文件
timeout设定超时时间,单位为秒
proxies字典类型,设定访问代理服务器,可以增加登录认证(也可以设置访问服务器时的IP地址,隐藏用户所用的实际IP)
allow-redirects参数值可为True/False,默认为True,重定向开关
steam参数值可为True/False,默认为True,,获取内容立即下载开关
verity参数值可为True/False,默认为True,认证SSL证书开关
cert本地SSL证书路径

注:其中上面的method表示请求方式,对应get/put/post等七种;^kwatgs表示控制访问的参数13个(均为可选项)。

三、Response的属性

r.status_code表HTTP请求的返回状态,200表示连接成功(404表示失败,一般非200都是失败)
r.text表HTTP相应内容的字符串形式,也就是url对应的页面内容
r.encoding表从HTTP header中猜测的相应内容的编码方式
r.apparent_encoding表从内容中分析出的响应内容编码方式(备选编码方式)
r.content表HTTP响应内容的二进制形式

注:理解Response的编码中的r.encoding和r.apparent_encoding的不同:r.encoding是从HTTP header中猜测内容编码方式(加入header中不存在charset,那么默认为“ISO-8859-1”),而r.apparent_encoding是从内容中分析之后响应的编码方式,

四、理解response库的异常处理

requests.ConnectionError网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPErrorHTTP错误异常
requests.URLRequiredURL缺失异常
requests.TooManyRedirects超过最大重定向次数,产生重定向异常
requests.ConnectTimeout连接远程服务器超时异常(部分过程)
requests.Timeout请求URL超时,产生超时异常(整个过程)

五、爬取网页的通用代码框架(代码)

import requests
def gethtml(url):
	try:
		r=requests.get(url,timeout=30)
		r.raise_for_status #如果状态不是200,则会应发HTTPError异常
		r.encoding=r.apparent_encoding
		return r.text
	except:
		return "产生异常"

注:以上代码使得爬取网页更加有效可靠。

这是笔者第一次写关于学术性的博客,错误一定很多,还望广大大佬多多指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值