我们在使用爬虫时,经常会遇到被封的情况,对于这些IP被封的问题,我们可以找一下代理网站,抓取一下ip,来进行动态的轮询就没问题了,比如使用IP代理精灵,这IP代理拥有许多有效的IP,IP池还会进行定期的更新。
如果不使用第三方的平台做代理ip,我们就必须得手动抓取ip了,可以搜索代理ip,可以找到一大堆网站,找几个稳定的代理网站,可以写一个爬虫脚本持续抓取,要是使用量不大的话,也可以手动粘贴抓取,要是土豪一点呢就买一点其实也可以,大概1块钱可以买几千个,还是挺值得的。
这时候如果你使用的是python,你需要自己维护一个ip池,控制每个ip的访问次数,随机更换ip什么的,但是如果你想做成服务化,你可以使用Squid绑定多个ip地址,做正向代理,Squid是一种在Linux系统下使用的比较优秀的代理服务器软件,把代理列表的代理ip,按照squid的cache_peer机制按照一定格式,写在配置文件中即可。
这个就相当于将管理和调度的问题全交给了squid来做,你只需要使用爬虫访问squid的服务端口就可以了。
另外我们在使用代理时,有时候会遇到一些问题,比如:
无法建立连接
可以连接,请求超时
正常返回(包括200,30x,40x,50x)
你看到的未必是真的,先来看个例子
明明有资源,代理却给你来个404,为了解决这个问题,在采集前先对代理进行首次测试,通过了再次使用
特别是使用免费的代理,若是想代理的质量好些,需要用付费的代理,比如可以找IP代理精灵。或者是自建代理服务器获得代理IP使用。