记录以备后用
方法
requests.request(method, url, **kwargs)
// 最主要, 其他方法都是由此方法封装而来requests.get(url, params=None, **kwargs)
// 最常用requests.head(url, **kwargs)
// 只拿headrequests.post(url, data=None, json=None, **kwargs)
requests.put(url, data=None, **kwargs)
requests.patch(url, data=None, **kwargs)
requests.delete(url, **kwargs)
参数
params
: 字典或字节序列,作为参数增加到url中1234'key1': 'value1', 'key2': 'value2'}kv = {'GET', 'http://python123.io/ws', params=kv)r = requests.request(print(r.url)http://python123.io/ws?key1=value1&key2=value2data
: 字典、字节序列或文件对象,作为Request的内容12345678910111213141516'key1': 'value1', 'key2': 'value2'}kv = {'POST', 'http://python123.io/ws', data=kv)r = requests.request(print(r.text){ ..."form": {"key2": "value2","key1": "value1"},}'主体内容'body ='POST', 'http://python123.io/ws', data=body)r = requests.request(print(r.text){ ..."data": "主体内容","form": {},}
json
: JSON格式的数据,作为Request的内容12'key1': 'value1'}kv = {'POST', 'http://python123.io/ws', json=kv)r = requests.request(headers
: 字典,HTTP定制头12'user‐agent': 'Chrome/10'}hd = {'POST', 'http://python123.io/ws', headers=hd)r = requests.request(
cookies
: 字典或CookieJar,Request中的cookieauth
: 元组,支持HTTP认证功能files
: 字典类型,传输文件12'file': open('data.xls', 'rb')}fs = {'POST', 'http://python123.io/ws', files=fs)r = requests.request(
timeout
: 设定超时时间,单位为秒1'GET', 'http://www.baidu.com', timeout=10)r = requests.request(
proxies
: 字典类型,设定访问代理服务器,可以增加登录认证123'http': 'http://user:pass@10.10.10.1:1234'pxs = {'https': 'https://10.10.10.1:4321' }'GET', 'http://www.baidu.com', proxies=pxs)r = requests.request(
allow_redirects
: True/False,默认为True,重定向开关stream
: True/False,默认为True,获取内容立即下载开关verify
: True/False,默认为True,认证SSL证书开关cert
: 本地SSL证书路径
Response对象的属性
r.status_code
: HTTP请求的返回状态,200表示连接成功,其余表示失败r.text
: HTTP响应内容的字符串形式,即url对应的页面内容r.encoding
: 从HTTP header中猜测的响应内容编码方式r.apparent_encoding
: 从内容中分析出的响应内容编码方式(备选编码方式)r.content
: HTTP响应内容的二进制形式
异常
requests.ConnectionError
: 网络连接错误异常,如DNS查询失败、拒绝连接等requests.HTTPError
: HTTP错误异常requests.URLRequired
: URL缺失异常requests.TooManyRedirects
: 超过最大重定向次数,产生重定向异常requests.ConnectTimeout
: 连接远程服务器超时异常requests.Timeout
: 请求URL超时,产生超时异常
判断异常的方法
|
|
r.raise_for_status()
: 如果不是200,产生异常 requests.HTTPError
r.raise_for_status()
在方法内部判断r.status_code
是否等于200,不需要增加额外的if语句,该语句便于利用try‐except进行异常处理
爬取网页的通用代码框架
|
|