Requests库的7个主要方法
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
对于response对象常用的五个属性:
构造response对象 r = requests.get(url)
r.status_code 返回网页连接状态 200为成功 404及其他为失败
r.text 返回响应内容,以字符串形式
r.encoding 从http header中猜测相应内容的编码形式
r.apparent_encoding 从内容中分析出相应内容的编码形式
r.content 返回HTTP相应内容的二进制形式
Requests库的几种异常说明:
requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常
response库异常的方法 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 "产生异常"
url = "https://www.bilibili.com"
print(getHTMLText(url))