多线程代理IP池

                有的时候需要对某些免费接口进行访问,或者数据爬虫时,为了防止某段时间大规模访问,对方封IP的这种情况。在自己进行访问时最好可以尝试换IP来访问。那么换IP怎么访问,这就牵扯到简单的还是自己动手解决。

简单的情况下,就是自己买免费的IP,去接接口获取。或者手动配置。缺点是,买免费要钱,在不是公司级业务的情况下,花钱有点冤大头。不买自己百度的话,第一是不够灵活,因为代理ip死亡时间很快,第二是极其麻烦,还要自己找,自己放在变量里/p>

所以,最好的解决方式是,要么出钱买一个接口自动获取,要么自己写一个代理ip池,不断地获取新的ip,并进行活跃度检测,删除死亡的ip达到一个转换的效果。

              首先,一个代理ip池要从时间逻辑上要考虑以下几个东西

              1.从那里获取

              2.怎么获取

              3.提高获取速度

              4.保存在哪里

              5.活跃度怎么保证

              解决一下上述问题,就能编写出来了。

              1.既然是免费代理ip池,那就从 上找到提供免费代理ip的 站,从 站上获取

              2.通过模拟请求,把 站上的代码获取到,通过jsoup解析,获取ip列表

              3.可以多找一些种子页面,也就是多找几个免费提供代理ip的 站,同时用多线程,同时对多个 站,多个page页面进行解析

              4.如果很多人要用,放在数据库,如果自己用,放在redis里最好,如果只是学着玩放在static List<String> 里也行

              5.在启动的时候,开启一个线程对活跃度进行检测,简单的来说,在一定的周期后,此任务启动,会用保存的ip去请求一个 站,如果请求的通,就说明是此Ip可用

               其实讲到这里基本就不用多说了,这个逻辑还是比较简单的,没有牵扯过多复杂的东西。

               还是根据对应逻辑点,放几张对应代码的图片,方便理解下吧。

               1.

               

3.创造线程池,同时对两个 站,前十页的ip进行解析,下面的cheakActive是对活跃度进行检测的,update刷新掉不活跃的ip

5.请求超时的删除

多线程代理IP池

源码下载地址:java maven的

http://download.csdn.net/download/zxysshgood/10138666

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年10月26日
下一篇 2017年10月26日

相关推荐