import requests as rq
requests库主要方法:
rq.request() 构造一个请求,支撑以下各方法的基础方法
rq.get(url) 获取HTML网页,对应HTTP的GET
rq.head() 获取HTML网页头信息,对应HTTP的HEAD
rq.post() 向HTML网页提交POST请求,对应HTTP的POST
rq.put() 向HTML网页提交PUT请求,对应HTTP的PUT
rq.patch() 向HTML网页提交局部修改请求,对应HTTP的PATCH
rq.delete() 向HTML页面提交删除请求,对应HTTP的DELETE
requests库的异常:
rq.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
rq.HTTPError HTTP错误异常
rq.URLRequired URL缺失异常
rq.TooManyRedirects 超过最大重定向次数,产生重定向异常
rq.ConnectTimeout 连接远程服务器超时异常
rq.Timeout 请求URL超时,产生超时异常
r = rq.get(url) # r为Response对象,包含服务器返回的所有信息,也包含请求的Request信息
Response对象的属性:
r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败
r.text HTTP响应内容的字符串形式,即url对应的页面内容
r.encoding 从HTTP header中猜测的响应内容编码方式,如果header中不存在charset,则认为编码为ISO‐8859‐1
r.apparent_encoding 从内容中分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式
Response异常:
r.raise_for_status() 在方法内部判断r.status_code是否等于200,不是200则产生rq.HTTPError异常
爬取网页代码框架:
import requests as rq
def getHTMLText():
try:
r = rq.get (url)
r.raise_for_status ()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常”
if __name__== ”__main__”:
url = "http://www.baidu.com"
print(getHTMLText(url))
访问控制参数:
params 字典或字节序列,作为参数增加到 url 中
data 字典、字字节序列或文件对象,作为 Request 的内谷
json JSON 格式的数据,作为 Request 的内容
headers 字典, HTTP 定制头
cookies 字典或 CookieJar , Request 中的 cookie
auth 元组,支持 HTTP 认证功能
files 字典类型,传输文件
timeout 设定超时时间,秒为单位
proxies 字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects BOOL类型,默认为 True ,重定向开关
stream BOOL类型,默认为 True ,获取内容立即下载开关
verify BOOL类型,默认为 True ,认证 SSL 证书开关
cert 本地 SSL 证书路径