1、自主切换IP¶
该模式适合一些需要登陆、Cookie缓存处理等爬虫需要精确控制IP切换时机的业务。 爬虫程序可以通过设置HTTP头Proxy-Tunnel: 随机数, 当随机数相同时,访问目标网站的代理IP相同。
例如
需要登录,获取数据两个请求在一个IP下,只需对这组请求设置相同Proxy-Tunnel,例如:Proxy-Tunnel: 12345, 该组请求在代理有效期内使用相同的代理IP。
注意
同一时间不同请求组可以设置不同Proxy-Tunnel: 随机数,并发完成数据爬取。
使用相同IP访问HTTPS目标网站
1 使用Connection: keep-alive和Proxy-Connection: keep-alive方式访问目标网站,代理会确保在一个会话中的所有请求都通过一个IP到达目标网站 2 设置相同Proxy-Tunnel,有些库封装比较高层次,请务必确认向代理发送了该HTTP头。
2、TCP请求切换IP(KeepAlive)¶
每个TCP请求自动切换,是指爬虫代理为爬虫程序发出的每个TCP请求随机提供一个代理IP,该模式适合需要多个session使用相同IP的连续性访问。
例如
需要登录,获取数据两个请求在一个IP下,只需保证该组请求在一个TCP会话下, 该组请求在代理有效期内使用相同的代理IP。
3、用户密码认证¶
通过用户名和密码的形式进行身份认证,该认证信息最终会转换为Proxy-Authorization 协议头跟随请求一起发出,同时支持通过Authorization协议头进行隧道身份验证。 如用户认证错误,系统会返回401 Unauthorized 或 407 Proxy Authentication Required。
例如
在代码中使用HTTP隧道时,如果代码的 HTTP 请求方法不支持以用户名/密码的形式设置身份认证信息, 则需要手动为每个 HTTP 请求增加Proxy-Authorization协议头, 其值为 Basic 。其中 为 “用户名” 和 “密码” 通过 : 拼接后, 再经由 BASE64 编码得到的字符串。 正确设置后,发出的请求都将包含如下格式的 HTTP 协议头信息: Proxy-Authorization: Basic MTZZVU4xMjM6MTIzNDMyMw==
注意
建议使用Proxy-Authorization 进行用户密码认证。如果使用Authorization,该HTTP头信息会随请求发送到目标网站。 访问HTTPS网站时,请使用库自带的代理认证方式,手动设置的Proxy-Authorization协议头,在访问HTTPS网站的情况下,会被代理直接转发到目标网站,导致匿名失效。
域名解析失败
爬虫代理域名ttl时间比较短【多机多地热备】,如遇到解析爬虫代理的域名失败,建议使用 114.114.114.114 或运营商的dns来做DNS解析。