1.Requests 的7个方法
| requests.requests() | 构造一个请求,支撑一下各种方法的基础方法 |
|---|
| requests.get() | 获取HTML网页的主要方法,对应HTTP的GET |
| requests.head() | 获取HTML网页头信息的方法,对应HTTP的HEAD |
| requests.post() | 向HTML网页提交POST请求的方法,对应POST |
| requests.put() | 向HTML网页提交PUT请求的方法,对应PUT |
| requests.patch() | 向HTML网页提交局部修改请求,对应PATCH |
| requests.delete() | 向HTML页面提交删除请求,对应HTTP的DELETE |
2. r = requests.get(url,params=None,**kwargs)
| 参数/对象 | 功能 |
|---|
| r | 返回的Response对象,包含服务器返回的所有内容和请求的Requests信息 |
| url | 拟获取页面的url链接 |
| params | url中额外参数,字典或字节流格式,可选 |
| **kwargs | 12个控制访问参数 |
| **kwargs | 描述 |
|---|
| params | 字典或字节序列,作为参数增加到url中 |
| headers | 字典,HTTP定制头,可模拟浏览器访问 |
| timeout | 设定超时时间,单位为秒 |
| cookies | 字典或CookieJar,Request中的cookie |
| data | 字典、字节序列或文件对象,作为Request的内容 |
| json | JSON格式的数据,作为Request的内容 |
| proxies | 字典类型,设定访问代理服务器,可增加登录认证 |
| allow_redirects | True/False,默认为True,重定向开关 |
| stream | True/False,默认为True,获取内容立即下载开关 |
| auth | 元组,支持HTTP认证功能 |
| verify | True/False,默认为True,认证SSL证书开关 |
| files | 字典类型,传输文件 |
| cert | 本地SSL证书路径 |
- params、headers的应用
import requests
url = 'http://www.baidu.com'
try:
kv = {'user-agent':'Mozilla/5.0'}
kw = {'wd':'Python'}
r = requests.get(url,headers=kv,params=kw)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
except:
print("爬取失败")
```
3.Response对象的属性
| 属性 | 说明 |
|---|
| r.status_code | HTTP请求的返回状态,200表示连接成功,404表示连接失败 |
| r.text | HTTP响应内容的字符串形式,即url对应的页面内容 |
| r.headers | HTTP响应内容的头部信息 |
| r.content | HTTP响应内容的二进制形式 |
| r.encoding | 从HTTP header中猜测的响应内容编码方式 |
| r.apparent_encoding | 从内容中分析出的响应内容编码方式 |
| r.request.headers | 请求的Request信息的头部 |
| r.request.url | 请求Request信息的url地址 |
| 属性/方法 | 说明 |
|---|
| r.status_code | HTTP请求的返回状态,200表示连接成功,404表示连接失败 |
| r.raise_for_status() | 如果不是200,产生requests.HTTPError,常用于异常处理 |
4.爬取网页的通用代码框架
import requests
def getHTMLText(url):
try:
r = requests.get(url,timeout=30)
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))
5.HTTP协议
| 字段 | 说明 |
|---|
| host | 合法的Internet主机域名或IP地址 |
| port | 端口号,缺省端口为80 |
| path | 请求资源的路径 |
requests官方文档