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 解析.
来源: http://www.bubuko.com/infodetail-2991712.html