Requestes库
Contents
Requestes库
安装方式:pip install requests(在终端)
Requestes库的7个主要方法:
方法 | 说明 |
---|---|
requestes.request() | 构造一个请求,支撑以下各方法的基础方法 |
$\color{red}{requestes.get()}$ | 获取HTML网页的主要方法,对应于HTTP的GET |
requestes.head() | 获取网页头信息方法,对应于HTTP的HEAD |
requestes.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requestes.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requestes.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requestes.delete() | 向HTML网页提交删除请求,对应于HTTP的DELETE |
在这个7个方法中,**requests.request()**函数,包含余下6个函数功能。最重要的是 requestes.get() 方法。
r = requests.get(url, params=None, **kwargs)
-
url:拟获取页面的url连接
-
params:url中的额外参数,字典或字节流格式,作为参数增加到url中
1 2 3 4 5
import requests kv = {'key1' : 'value1', 'key2' : 'value2'} r = requests.get('http://python123.io/ws', params=kv) print(r.url) https://python123.io/ws?key1=value1&key2=value2
-
**kwargs:12个可控制参数 data:字典、字节序列或文件对象,作为Request的内容 json:JSON格式数据,作为Request的内容 headers:字典,可以修改HTTP协议头部信息,用来模拟浏览器访问服务器
1 2
hd = {'user-agent' : 'Chrome/10'} r = requests.post('http;//python123.io/ws', headers=hd)
coocies:字典或CookieJJar,Request中cookie auth:元组,支持HTTP认证功能 files:字典类型,传输文件
1 2
fs = {'file' : open('data.xls', 'rb')} r = requests.post('http://python123.io/ws', files=fs)
timeout:设定超时时间,秒为单位
1
r = requests.get('http://www.baidu.com', timeout=30)
proxies:字典类型,设定访问代理服务器,可以增加登陆认证
1 2 3 4
pxs = {'http' : 'http://user:pass@10.10.10.1:1234' 'https:' : 'https://10.10.10.1:1234'} r = requests.get('http://www.baidu.com', proxies=pxs) #注释:因此用户爬取源的IP信息,而采用代理服务器的IP地址爬取百度,防止逆追踪
allow_redirects:True/False,默认为Ture,重定向开关 strem:True/False,默认为Ture,获取内容立即下载开关 verify:True/False,默认为Ture,认证SSL证书开关 cert:本地SSL认证书路径
-
r:是返回的对象,response对象,下面是Response对象常用属性($\color{red}{重点掌握}$)
属性 说明 r.status_code HTTP请求返回的状态码,200表示连接成功,404表示失败。其余的详细参考HTTP返回状态码值及其含义 r.text HTTP相应内容的字符串格式,即,url对应的页面内容 r.encoding 从HTTP header中 猜测 响应内容编码格式 r.apparent_encoding 从 HTTP页面内容 中分析出相应内容的编码格式 r.content HTTP响应内容的二进制格式(比如图片的信息,是以二进制存储的) r.headers HTTP响应内容的header信息
通用代码框架
|
|
通用代码框架,可以有效的处理爬取过程中可能会出现的异常情况。使得程序变得更有效,更稳定,更可靠。