您的位置:首页 >新闻资讯 > 正文

搭建以及维护代理IP池

来源:互联网 作者:admin 时间:2019-10-09 15:34:51

  HTTP代理是大家使用得比较多的一种代理方式,如果我们想要做一个自己的代理IP池要怎么去实现跟维护呢?大家对项目的操作步骤有想法吗?下面,教程根据步骤来给大家好好说明一下。


  1、存储


  我们把抓到的代理存到mysql中, 具体的表设计如下:


  CREATE TABLE `proxy` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT,

  `ip` varchar(15) NOT NULL,

  `port` int(10) unsigned NOT NULL DEFAULT '3128',

  `type` smallint(5) unsigned NOT NULL DEFAULT '0',

  `country` varchar(2) DEFAULT NULL,

  `state` varchar(15) DEFAULT NULL,

  `enqueue_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

  `last_check_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

  `used_times` int(11) NOT NULL DEFAULT '0',

  `from_url` varchar(1024) NOT NULL DEFAULT '',

  PRIMARY KEY (`id`),

  KEY `idx_ip_port` (`ip`,`port`)

  ) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8mb4


  2、抓取和验证


  代理的获取分为两个线程, 一个线程使用爬虫不断扫描已知的代理的网站, 获得代理的地址, 验证后入库。另一个线程扫描库里的代理, 验证是否依然可用。


  3、接口


  代理服务对外主要提供一个接口, get_proxy. 需要使用代理的程序每次调用这个接口获得一个可用代理使用. 每次尽量选取使用次数最少但是存活时间最长的代理。


  4、实现


  把每个网页抽取代理的xpath配好, 之后就等着在数据库看数据就好了。

  

搭建以及维护代理IP池


  经过测试, 一般代理的存活时间往往在十几分钟左右, 但是这些代理网站的更新时间一般也在十几分钟, 而且由于找到了大概几十个网站, 扫一遍并验证花费的时间可能在几个小时左右. 所以维持一个可用代理在1k左右的代理库是不成问题的。


  get_proxy 的接口如下:

  

搭建以及维护代理IP池


  这样,我们的代理IP池就成功完成了,之后有需要用到爬虫的时候,就能够有现成的代理IP使用,非常方便。


相关文章内容简介