【爬虫实战-IP代理的重要性一】 以urllib和request为例
我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误。现在大型的网站都会采取了一些反爬虫的措施,比如服务器会检测某个 IP 在单位时间内的请求次数,如果超过了这个阈值,那么会直接拒绝服务,返回一些错误信息。所以在真正爬虫过程中,常见的工具 Requests、Urllib、Selenium、playwright等增加代理, 由于
前置条件
本章章节代码运行需要大家提前准备好代理。如果大家有qiang软件,如clash,设置一下代理开启即可:
本章节样例包含http协议和socks5协议,http代理协议大家都很熟悉,就不展开说明
Socks5协议
socks代理协议工作在OSI模型的会话层(第5层),是一种底层网络中转协议。它的核心特点是:
协议中立性:SOCKS5不关心应用层协议类型,可以转发所有TCP连接,包括网页、社交App、广告平台等协议支持:同时支持TCP和UDP协议传输,这是它与HTTP代理的关键区别之一
简单转发机制:SOCKS5代理只是简单地传递数据包,而不解析应用协议内容(如FTP、HTTP和NNTP请求),因此比其他应用层代理要快得多
工作原理上,SOCKS5代理建立连接通常包括以下步骤:
客户端与代理服务器进行认证协商
建立连接,客户端发送CONNECT命