您的位置:首页 > 新闻资讯 >文章内容
IP代理池的组成以及搭建过程中遇到的问题
来源:互联网 作者:admin 时间:2019-04-04 18:10:50

我们搭建IP代理池,一般都是选择免费的,不过免费的采集也简单,无非就是:访问页面页面 —> 正则/xpath提取 —> 保存。下面我们来看看IP代理池的组成以及遇到的问题。

IP代理池由四部分组成:

  • ProxyApi:用flask写的接口,功能是给爬虫提供get/delete/refresh等接口,方便爬虫直接使用。

  • ProxyGetter: 爬取免费代理

  • Schedule:调度。定时检测DB中的代理可用性,删除不可用的代理。同时也会主动通过ProxyGetter去获取最新代理。看代码好像是5分钟跑一次ProxyGetter。

  • DB:存储模块。使用SSDB,或者redis做可用代理队列的存储。



IP代理池的组成以及搭建过程中遇到的问题

会遇到哪些比较常见的问题:

由于整个项目的校验机制延时比较长,代码如下:

IP代理池的组成以及搭建过程中遇到的问题

每分钟校验一次可用代理,10分钟爬一次免费网站的代理。我个人感觉校验代理的世界太长了,可以看看我的测试。

跑了一天,代理池记录的代理如图

IP代理池的组成以及搭建过程中遇到的问题


我特别写的校验机制,循环20次校验拿到的代理可用数,如图:

IP代理池的组成以及搭建过程中遇到的问题


第一次校验通过24个代理可用,第二次只有18,中间耗时4s

IP代理池的组成以及搭建过程中遇到的问题


20次校验后,得到的可用代理只有13个

IP代理池的组成以及搭建过程中遇到的问题


由于项目校验可用代理延时为1分钟,最初可用代理76个。当我使用脚本校验20次后,可用的只有13个。意味着在这段时间内,可用的稳定的代理只有13/76,不到20%的稳定率。

在实际使用中,不管使用何种代理,校验都是必不可少的,但是不到20%的代理可用,这会对爬虫造成巨大的干扰,至少在我看来,在这种机制下,校验的IP还具有很大的提升空间。

解决问题的思路:

由于是爬取其他网站的活动代理,我们并不在乎我们单位时间的请求数,只需要在当下的代理可用即可。解决核心:76个IP其实还不如5个较为稳定的IP,我们如何让这76个IP变成5个可用的稳定的IP成为这个项目可以应用在实际工程中的核心。

总的来说通过代理绕过很多网站的确是很好的办法,但是高端的反爬虫越来越依托于秘钥校验等等,硬实力越来越重要。代理永远都只是一个工具,爬虫工程师的核心永远都是自己的对抗能力。不过找代理,可以找机灵代理。


相关文章内容简介
推荐阅读
  • 25 2019-03
    爬虫程序中调用动态ip代理的方法

    动态ip代理对于爬虫程序来说,是非常重要的组成部分,如果仅仅是编写爬虫程序,不做抓取使用,这没有加入动态ip代理也没有什么,但如果要让爬虫程序直接去爬取数据,这是不能够的。

  • 02 2019-12
    可以通过什么方式来得到免费代理IP?

    使用互联网的时候,我们有时会遇上一些需要使用代理IP的特殊情况,甚至是我们要完成一些业务的时候,也是需要用到代理IP。市面上,存在免费的代理IP,我们可以从什么地方获得?

  • 08 2019-11
    区分API代理池与线程IP池

    通过API接口提取代理IP来进行使用,这种方式是很多人会使用到的途径。那么,API代理池跟线程IP池之间,存在什么差异呢?

  • 13 2020-01
    正确使用爬虫代理的方法

    由于中国的互联网的发展进步神速,现在网络爬虫工作者也越来越多。网络爬虫用户使用爬虫代理IP的也越来越多,但是有些爬虫框架不一样,使用的爬虫代理IP的方式也不一样,如何正确使用

  • 12 2019-08
    自媒体刷量需要爬虫程序和代理ip资源

    自媒体刷量需要爬虫程序和代理ip资源!自媒体账号推荐量是一个比较麻烦的事情,平台都是依据智能推荐机制进行内容推送,如果说内容推荐量不高,那一般阅读量都不会太高。于是,有些人

  • 10 2019-02
    java多线程的几种实现方式

    爬虫在遇到大数据的时候,但线程抓取数据太慢了,需要使用多线程。这多线程如何实现的呢?今天小编介绍下关于java多线程的几种实现方式:

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部