request库讲解

一、request库

以下为我整理的requests库使用技巧,仅供参考。

import requests
r = requests.get("http://www.baidu.com")#通过这行代码就可以爬取网页信息
print(r.status_code)     #如果输出值为200,则证明与要访问的网站链接成功
r.encoding = 'utf-8'     #代码中含有中文字符时,需要写入改行 代码进行显示,不然会出现乱码。
print(r.text)            #打印爬取到的代码,需要加.text

1、requests库的7个主要方法

在这里插入图片描述

HTTP协议对资源的操作

方法 说明
GET 请求获取URL位置的资源
HEAD 请求获取URL位置资源的响应消息报告,即获的该资源的头部信息
POST 请求向URL位置的资源后附加新的数据
PUT 请求向URL位置存储一个资源,覆盖URL位置的资源
PATCH 请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE 请求删除URL位置存储的资源

1、requests.request(method,url,**kwargs)

method:请求方式,对应get/put/post等7种
url:拟获取页面的url链接
**kwargs:控制访问的参数,共13个

params:
能够增加到url中的参数,字典获字节序列。例:
在这里插入图片描述

data:
字典、字节序列或文件对象,作为Request的内容。(放在目录对应文件中)
在这里插入图片描述 json:
JSON格式的数据,作为Request的内容。
在这里插入图片描述
headers:
字典,HTTP定制头。
(可以进行模拟浏览器向服务器进行访问)
在这里插入图片描述
cookies:字典获CookieJar,从HTTP协议中解析cookie。
auth:元祖,支持HTTP认证功能。
files:字典类型,传输文件。向某个链接传输文件。
timeout:设定超时时间,秒为单位
proxies:设定访问代理服务器,可以增加登录认证,可以隐藏ID信息。
allow_redirects:默认为True,重定向开关
stream:默认为True,获取内容立即下载开关 。
verify:默认为True,认证SSL证书开关
cert:本地SSL证书路径的字段。

2、requests.get(url,params=None,**kwargs)
在这里插入图片描述
3、使用head()访问头部信息,代码示例:
requests.head(url,**kwargs)
在这里插入图片描述

import requests
r = head("http://www.baidu.com")
print(r.headers)  #使用r.text适用于展示全部内容,在这里显示为空

4、适用post()提交数据,服务器会根据提交数据类型的不同进行相关的整理。
requests.put(url,data=None,json=None,**kwargs)
在这里插入图片描述
字符串会被编码为data;
在这里插入图片描述
字典会被编码为form。
在这里插入图片描述
5、requests.patch(url,data=None,**kwargs)
在这里插入图片描述
6、requests.delete(url,**kwargs)
在这里插入图片描述

Response对象的属性

属性 说明
r.status_code HTTP请求返回状态,200表示链接成功,404表示失败
r.text HTTP响应内容的字符串形式,即,url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式(如果header中不存在charset,则认为编码为ISO-8859-1)
r.aooarent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP 响应内容的二进制形式

3、获取网页内容的流程

在这里插入图片描述

二、爬取网页的通用代码框架

1、Requests库的异常

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

2、与异常打交道的方法

异常 说明
r.raise_for_status() 如果不是200,产生异常requests.HTTPError

抓取网页的通用代码框架

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

猜你喜欢

转载自blog.csdn.net/weixin_41833665/article/details/85095467