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 代替自己去访问网站。
-
代理IP池 通过构建代理 IP 池可以让你编写的爬虫程序更加稳定,从 IP 池中随机选择一个 IP 去访问网站,而不使用固定的真实 IP。总之将爬虫程序伪装的越像人,它就越不容易被网站封杀。当然代理 IP 也不是完全不能被察觉,通过端口探测技等术识仍然可以辨别。其实爬虫与反爬虫永远相互斗争的,就看谁的技术更加厉害。
-
proxies参数 Requests 提供了一个代理 IP 参数proxies,该参数的语法结构如下:
proxies = { '协议类型(http/https)':'协议类型://IP地址:端口号' } 下面构建了两个协议版本的代理 IP,示例如下:
proxies = { 'http':'http://IP:端口号', 'https':'https://IP:端口号' } 3) 代理IP使用 下面通过简单演示如何使用proxies参数,示例如下:
import requests url = 'httpbin.org/get' headers = { 'User-Agent':'Mozilla/5.0' } } html = requests.get(url,proxies=proxies,headers=headers,timeout=5).text print(html) 输出结果:
{ "args": {}, "headers": { "Accept": "/", "Accept-Encoding": "gzip, deflate", "Cache-Control": "max-age=259200", "Host": "httpbin.org", "User-Agent": "Mozilla/5.0", "X-Amzn-Trace-Id": "Root=1-605073b0-4f54db1b2d2cfc0c074a1193" },
注意此处显示两个IP,第一个是你自己的真实IP,另外一个是对外展示的IP
"origin": "121.17.25.194, 191.235.72.144", "url": "httpbin.org/get" }
开放代理:开放代理是从公网收集的代理服务器,具有 IP 数量大,使用成本低的特点,全年超过 80% 的时间都能有 3000 个以上的代理 IP 可供提取使用。
户认证-auth参数 Requests 提供了一个auth参数,该参数的支持用户认证功能,也就是适合那些需要验证用户名、密码的网站。auth 的参数形式是一个元组,其格式如下:
auth = ('username','password') 其使用示例如下所示:
class xxxSpider(object): def init(self): self.url = 'code.tarena.com.cn/AIDCode/aid…'
网站使用的用户名,密码
self.auth = (' def get_headers(self): headers = {'User-Agent':"Mozilla/5.0"} return headers def get_html(self,url): res = requests.get(url,headers=self.get_headers(),auth=self.auth) html = res.content return html ...