记录以备后用
方法
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中1234kv = {'key1': 'value1', 'key2': 'value2'}r = requests.request('GET', 'http://python123.io/ws', params=kv)print(r.url)http://python123.io/ws?key1=value1&key2=value2data: 字典、字节序列或文件对象,作为Request的内容12345678910111213141516kv = {'key1': 'value1', 'key2': 'value2'}r = requests.request('POST', 'http://python123.io/ws', data=kv)print(r.text){ ..."form": {"key2": "value2","key1": "value1"},}body = '主体内容'r = requests.request('POST', 'http://python123.io/ws', data=body)print(r.text){ ..."data": "主体内容","form": {},}
json: JSON格式的数据,作为Request的内容12kv = {'key1': 'value1'}r = requests.request('POST', 'http://python123.io/ws', json=kv)headers: 字典,HTTP定制头12hd = {'user‐agent': 'Chrome/10'}r = requests.request('POST', 'http://python123.io/ws', headers=hd)
cookies: 字典或CookieJar,Request中的cookieauth: 元组,支持HTTP认证功能files: 字典类型,传输文件12fs = {'file': open('data.xls', 'rb')}r = requests.request('POST', 'http://python123.io/ws', files=fs)
timeout: 设定超时时间,单位为秒1r = requests.request('GET', 'http://www.baidu.com', timeout=10)
proxies: 字典类型,设定访问代理服务器,可以增加登录认证123pxs = { 'http': 'http://user:pass@10.10.10.1:1234''https': 'https://10.10.10.1:4321' }r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)
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进行异常处理
爬取网页的通用代码框架
|
|