目录
  • 代理ip原理
    • 输入网址后发生了什么呢?
    • 代理ip做了什么呢?
    •  为什么要用代理呢?
  • 爬虫代码中使用代理ip
    • 检验代理ip是否生效
      •  未生效问题排查
        • 1.请求协议不匹配
        • 2.代理失效
      • 总结

        主要内容:代理ip使用原理,怎么在自己的爬虫里设置代理ip,怎么知道代理ip是否生效,没生效的话哪里出了问题,个人使用的代理ip(付费)。

        代理ip原理

        输入网址后发生了什么呢?

        1.浏览器获取域名

        2.通过DNS协议获取域名对应服务器的ip地址

        3.浏览器和对应的服务器通过三次握手建立TCP连接

        4.浏览器通过HTTP协议向服务器发送数据请求

        5.服务器将查询结果返回给浏览器

        6.四次挥手释放TCP连接

        7.浏览器渲染结果

        其中涉及到了:

        应用层:HTTP和DNS

        传输层:TCP UDP

        网络层:IP ICMP ARP

        代理ip做了什么呢?

        简单来说,就是:

        原本你的访问

        python爬虫之代理ip正确使用方法实例

        使用代理后你的访问

        python爬虫之代理ip正确使用方法实例

         为什么要用代理呢?

        因为我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封IP。而代理ip就避免了这个问题:

        python爬虫之代理ip正确使用方法实例

        爬虫代码中使用代理ip

        就像是请求时伪装头一样,伪装ip,注意是 { }

        proxies = {
                   'https':'117.29.228.43:64257',
                   'http':'117.29.228.43:64257'
               }
         
        requests.get(url, headers=head, proxies=proxies, timeout=3) #proxies

        检验代理ip是否生效

        我们访问一个网站,这个网站会返回我们的ip地址:

        print(requests.get('http://httpbin.org/ip', proxies=proxies, timeout=3).text)

        我们看一下我使用了四个不同的代理ip,全部生效了,

        python爬虫之代理ip正确使用方法实例

         未生效问题排查

        如果你返回的还是本机地址,99%试一下两种情况之一:

        1.请求协议不匹配

        简单来说就是,如果你请求的是http,就要用http的协议,如果是https,就要用https的协议。

        python爬虫之代理ip正确使用方法实例

        如果我请求是http ,但只有https,就会使用本机ip。

        2.代理失效

        便宜没好货,好货不便宜。如果确实大规模爬虫是必须的话,还是买代理ip比较好,网上广告满天飞的某些代理实际性价比有些低了,自己常用的就不分享了,总是被当成广告,推荐一些其他的比如:

        1、IPIDEA

        2、Stormproxies

        3、YourPrivateProxy

        4、GeoSurf

        当然还有大家熟知的快代理,西刺等等,都有一些免费代理可供使用。

        总结

        声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。