Requests库常用方法及参数介绍
方法 | 说明 |
---|---|
requests.request() | 构造一个请求对象,该方法是实现以下各个方法的基础。 |
requests.get() | 获取HTML网页的主要方法,对应于 HTTP 的 GET 方法。 |
requests.head() | 获取HTML网页头信息的方法,对应于 HTTP 的 HEAD 方法。 |
requests.post() | 获取 HTML 网页提交 POST请求方法,对应于 HTTP 的 POST。 |
requests.put() | 获取HTML网页提交PUT请求方法,对应于 HTTP 的 PUT。 |
requests.patch() | 获取HTML网页提交局部修改请求,对应于 HTTP 的 PATCH。 |
requests.delete() | 获取HTML页面提交删除请求,对应于 HTTP 的 DELETE。 |
上述方法都提供了相同的参数,其中某些参数已经使用过,比如
headers
和params
,前者用来构造请求头,后者用来构建查询字符串。这些参数对于编写爬虫程序有着关重要的作用。本节对其他常用参数做重点介绍。SSL认证-verify参数
SSL 证书是数字证书的一种,类似于驾驶证、护照和营业执照。因为配置在服务器上,也称为 SSL 服务器证书。SSL 证书遵守 SSL 协议,由受信任的数字证书颁发机构 CA(电子认证服务)颁发。 SSL 具有服务器身份验证和数据传输加密功能。verify
参数的作用是检查 SSL 证书认证,参数的默认值为 True,如果设置为 False 则表示不检查 SSL证书,此参数适用于没有经过 CA 机构认证的 HTTPS 类型的网站。其使用格式如下:response = requests.get(
url=url,
params=params,
headers=headers,
verify=False
)
代理IP-proxies参数
一些网站为了限制爬虫从而设置了很多反爬策略,其中一项就是针对 IP 地址设置的。比如,访问网站超过规定次数导致流量异常,或者某个时间段内频繁地更换浏览器访问,存在上述行为的 IP 极有可能被网站封杀掉。代理 IP 就是解决上述问题的,它突破了 IP 地址的访问限制,隐藏了本地网络的真实 IP,而使用第三方 IP 代替自己去访问网站。
1) 代理IP池
通过构建代理 IP 池可以让你编写的爬虫程序更加稳定,从 IP 池中随机选择一个 IP 去访问网站,而不使用固定的真实 IP。总之将爬虫程序伪装的越像人,它就越不容易被网站封杀。当然代理 IP 也不是完全不能被察觉,通过端口探测技等术识仍然可以辨别。其实爬虫与反爬虫永远相互斗争的,就看谁的技术更加厉害。
2) proxies参数
Requests 提供了一个代理 IP 参数proxies
,该参数的语法结构如下:proxies = {
'协议类型(http/https)':'协议类型://IP地址:端口号'
}
下面构建了两个协议版本的代理 IP,示例如下:
proxies = {
'http':'http://IP:端口号',
'https':'https://IP:端口号'
}
3) 代理IP使用
下面通过简单演示如何使用proxies
参数,示例如下:import requests
url = 'http://httpbin网站站点" rel="nofollow" />
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Cache-Control": "max-age=259200",
"Host": "httpbin网站站点" rel="nofollow" />
89 免费代理(http://www.89ip网站站点" rel="nofollow" /> )是一个专门提供免费代理 IP 的网站,不过想找到一个质量较高的免费代理好比大海捞针。 用户认证-auth参数
Requests 提供了一个auth
参数,该参数的支持用户认证功能,也就是适那些需要验证用户名、密码的网站。auth 的参数形式是一个元组,其格式如下:auth = ('username','password')
其使用示例如下所示:
class xSpider(object):
def __init__(self):
self.url = 'http://code.tare网站站点" rel="nofollow" />