用IP代理伪装爬虫身份

日期: 2020-07-29 14:33

  以前说使用User-Agent来伪装自己不是爬虫,但是这并不能规避服务器禁止访问的问题,但因为程序的运行速度是非常快的,如果我们利用一个爬虫程序在网站爬取数据,一个固定IP会非常频繁去访问服务器,一般来说,正常人是达不到这种手速的,除非你是……,因为手动操作不可能在几ms内,进行如此频繁的访问。所以一些网站一般都会设置一个IP访问频率的阈值,如果一个IP访问频率超过这个阈值,说明这个不是人在访问,而是一个爬虫程序,这个时候你的IP就会被禁止访问服务器。
 
 
  关于这个问题一般有两种解决方案:
 
  问题分析:由于短时间内使用同一IP地址过高评率访问服务器导致的IP被封禁问题。解决办法:睡眠程序—-使用多个IP地址
 
  一、睡眠程序
 
  一个很简单的解决办法就是设置延时,但是这样会造成我们获取数据花费大量时间,这样不能很好的满足我们的要求。
 
  二、使用ip代理加速器软件
 
  使用多个IP地址,就能很好的解决问题,不仅不会被封禁,而且访问速度也没有太大牺牲。
 
  之前我们使用urlopen()的时候都没怎么详细的了解这个函数,它其实是一个默认的Opener,今天可以说下它的实现。
 
  在urlopen()的实现中有明确的三步实现:
 
  创建handler()
 
  调用build_opener()以handler为参数创建得到opener
 
  使用opener.open()发送请求
 
  我们使用代理的步骤也跟上述基本一致,看下实现:
 
  可以看到IP地址已经伪装完成,需要说明的是,一般来说公司有自己的代理库,这种公开的也只是测试用一哈,如果用自己的代理库也只是简答调整一下就好了。

相关新闻