【应用背景💬】:目前网站采取了许多反爬虫措施。 如果,服务器会检测某个 IP在单位时间内的请求次数,如果超过了这个阔值,就会直接拒绝服务,返 问一些错误信息,这种情况可以称为封 IP(对,没错,你来的频率太高了,你该歇歇了)。
既然有反爬机制,那么自然有其应对措施啦,毕竟爬虫与反爬虫技术在道德、法律底线内是相互促进,和谐发展的。
【应对措施💬】:IP 伪装
既然服务器检测的是某个 IP地址, 单位时间的请求次数,那么借助某种方式来伪装我们的 IP,让服务 器识别不出是由我们本机发起的请求,不就可以成功防止封 IP 了吗?
IP 代理原理
【简单介绍💬】:代理 proxy server 实际上指的就是代理服务器,它的功能是代理网络用户去取得网络信息。
【通俗理解💬】:它是网络信息的中转站。 当我们请求一个网站时,如果使用了代理服务器。那么,客户端将不在直接的接向 Web 服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器,然后由代理服务器再发送给 Web 服务器,接着由代理服务器再把 Web 服务器返回的响应转发给客户端。
在这个过程中,我们即达到了请求网站的需求,同时又隐藏了我们自己的真实Ip地址,想想那些黑客,可是使用IP代理的忠实“玩家”。毕竟通过IP伪装,轻轻松松的就实现了“做坏事不留名”。——【唐探2 的黑客粉上线了...】
代理的作用
谈了那么多,现在来聊聊代理的作用吧,大致总结出以下几条。
- 突破门身 IP访问限制,访问一些平时不能访问的站点。
- 提高访问速度
【注释💬】:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同 时也将·其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息凭此提高访问速度。 - 隐藏真实 IP
【详解💬】: 上网者也可以通过这种方法隐藏向己的 IP, 免受攻击。 对于爬虫来说,我们用 代理就是为了隐藏向身 IP,防止 向身的 IP 被封锁。
【💯(良心)安利💬】:想认真系统学爬虫的话,可以看看崔庆才写的网络爬虫开发实战。相当不错,没想到搜索他的人还蛮多的,搜狗打字能检索到这个名...
代理分类
根据协议区分 | 描述 |
---|---|
💎FTP 代理服务器 | 主要用于访问 FTP 服务器, 一般有上传、 下载以及缓存功能,端口一般为 21 、 2121 等。 |
💎HTTP 代理服务器 | 主要用于访问网页,一般有内容过滤和缓存功能,端口一般为 80 、 8080、 3128 等。 |
💎 SSL/TLS 代理 | 主要用于访问加密网站, 一般有 SSL 或 TLS 加密功能(最高支持 128 位加密 强度),端口一般为 443。 |
RTSP 代理 | 主要用于访问 Real 流媒体服务器, 一般有缓存功能 |
Telnet代理 | 主要用于telnet远程控制(黑客人侵计算机时常用于隐藏身份) |
根据匿名程度区分 | 描述 |
---|---|
高度匿名代理 | 会将数据包原封不动地转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的 IP 是代理服务器的 IP。 |
普通匿名代理 | 会在数据包上做一些改动, 服务端上有可能发现这是个代理服务器,也有一定几 率追查到客户端的真实IP。 |
透明代理 | 不但改动了数据包 还会告诉服务器客户端的真实 IP。 这种代理能用缓存技术提高浏览速度,能用内容过滤提高安全性 |
间谍代理 | 组织或个人创建的用于记录用户传输的数据,然后进行研究、 监控等目的的代理服务器。 |
代理的设置
例如:requests 的代理的设置:
import requests
proxy= '121.0.0.1:9743'
proxies = {
"http":'http://'+proxy,
"https":'https://' + proxy,
}
- selenuim 设置代理
# 设置代理
proxy = '220.191.64.149'
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--proxy-server = http://' + proxy)
broswer = webdriver.Chrome()
# 测试代理
broswer.get('http://httpbin.org/get')
【解释】"origin"属性:表示的即为客户端显示的代理,并非是真实的代理,已经成功完成了IP伪装。