如何搭建稳定的代理ip池, 供爬虫使用

新型的代理ip池aox_proxy_pool

在这篇文章之前, 应该不少人都看过很多搭建代理ip池的文章, 然后发现都是坑, 无法使用。说的比较多的

  1. 推荐买xx家的代理ip, 贼稳定, 好使(广告)
  2. 抓取xx免费代理ip, 然后自己写一个校验, 然后写一个api, 提供给爬虫使用

第一种方法就不说了, 真的存在几家不错的代理ip(别问我谁家的好, 我不知道, 我写这篇文章就为了推销我自己写的项目好伐)

第二种, github上这种项目海了去了, 绝大部分, 在你搭建好以后, 发现爬虫还是爬不动, 免费代理ip根本无法使用的好伐!稍微好点的haipproxy, 我也用过, 但是不解决根本问题! 绝大部分ip失效太快了! 而且各种错误, 爬十个页面, 能成功一个都算烧高香了。

那么, 到底为啥免费的代理ip不好使呢?
还有很多人都问到, 那些代理ip商真的有那么多ip么?

其实不是, 免费代理ip很多都是扫出来的, 扫ip段, 端口, 特征码。发现可以使用, 那就是代理ip。

代理ip不好用, 一般是因为以下几个原因

  1. 扫到的代理ip是临时的
  2. 访问量太大, 服务器都挂了
  3. 本来就不是代理ip
  4. 有验证
  5. 本来是http的代理, 你用来访问https, 那当然不行了!
  6. 代理异常, 连接中断, 带宽被沾满, 返回错误。

如果不想花钱, 那么就只能自己找到稳定的代理ip, 然后来使用。
而一般的代理池, 都是拿百度、知乎阿、豆瓣阿啥的网址访问, 成了说明能用, 不成就是失败。最多加个分值计算什么的。

之前看了下haipproxy的代码, 成功率高就得自己写验证, 说白了, 在爬虫使用之前, 先尝试访问下, 来提高成功率, 我觉得意义不大。

上面都废话, 以下才是主要的
其实免费代理ip中, 有极少数的一部分, 是非常稳定的代理服务器, 所以这些服务器就可以长期用来使用。

我抓取到的免费的代理ip, 中, 过滤后剩下的ip的访问成功率基本在90%+

第一、其实最简单的方式就是根据服务器开放的端口来判断, 如果服务器有开放80, 3389, 3306, 22之类的端口, 那么说明服务器还有别的服务在运行, 挂掉的几率很小, 如果是政府、学校的服务器, 那么更加稳定。当然也有可能开放别的端口

第二、服务器的访问速度判断, 需要访问多个不同的网址, 来取平均数, 这样的访问速度才比较稳

第三、代理ip的存活时间, 越长越稳定, 当然这个是在你搭建抓取后, 来进行计算。

第四、代理类型的重新检测, 通过访问不同的http和https网站, 判断代理到底是http还是https, 并且进行划分, http的代理, 那就访问http网址的时候使用, https的代理给https访问提供服务, 这样访问的几率才能提高。

所以根据这几点, 我重新写了一套代理ip池的项目, 目前抓取ip 4500+, 长期稳定的ip在60+左右, 虽然少,但是相当稳定。

原文地址:http://blog.51cto.com/a3147972/2298023

时间: 2024-11-05 11:34:43

如何搭建稳定的代理ip池, 供爬虫使用的相关文章

构建一个给爬虫使用的代理IP池

做网络爬虫时,一般对代理IP的需求量比较大.因为在爬取网站信息的过程中,很多网站做了反爬虫策略,可能会对每个IP做频次控制.这样我们在爬取网站时就需要很多代理IP. 代理IP的获取,可以从以下几个途径得到: 从免费的网站上获取,质量很低,能用的IP极少 购买收费的代理服务,质量高很多 自己搭建代理服务器,稳定,但需要大量的服务器资源. 本文的代理IP池是通过爬虫事先从多个免费网站上获取代理IP之后,再做检查判断IP是否可用,可用的话就存放到MongoDB中,最后展示到前端的页面上. 获取可用Pr

【python3】如何建立爬虫代理ip池

一.为什么需要建立爬虫代理ip池 在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制的,在某段时间内,当某个ip的访问量达到一定的阀值时,该ip会被拉黑.在一段时间内被禁止访问. 这种时候,可以通过降低爬虫的频率,或者更改ip来应对.后者就需要有一个可用的代理ip池,以供爬虫工作时切换. 二.如何建立一个爬虫代理ip池 思路:   1.找到一个免费的ip代理网站(如:西刺代理) 2.爬取ip(常规爬取requests+BeautifulSoup) 3.验证ip有效性(携带爬取到的ip,去

Redis学习之代理 ip 池设计方法详解

代理 ip 因为配置简单而且廉价,经常用来作为反反爬虫的手段,但是稳定性一直是其诟病.筛选出优质的代理 ip 并不简单,即使付费购买的代理 ip 源,卖家也不敢保证 100% 可用:另外代理 ip 的生命周期也无法预知,可能上一秒能用,下一秒就扑街了.基于这些原因,会给使用代理 ip 的爬虫程序带来很多不稳定的因素.要排除代理 ip 的影响,通常的做法是建一个代理 ip 池,每次请求前来池子取一个 ip,用完之后归还,保证池子里的 ip 都是可用的.本文接下来就探讨一下,如何使用 Redis 数

基于 Redis 的代理 ip 池设计

代理 ip 因为配置简单而且廉价,经常用来作为反反爬虫的手段,但是稳定性一直是其诟病.筛选出优质的代理 ip 并不简单,即使付费购买的代理 ip 源,卖家也不敢保证 100% 可用:另外代理 ip 的生命周期也无法预知,可能上一秒能用,下一秒就扑街了.基于这些原因,会给使用代理 ip 的爬虫程序带来很多不稳定的因素.要排除代理 ip 的影响,通常的做法是建一个代理 ip 池,每次请求前来池子取一个 ip,用完之后归还,保证池子里的 ip 都是可用的.本文接下来就探讨一下,如何使用 Redis 构

自己设计代理IP池

大体思路 使用redis作为队列,买了一份蘑菇代理,但是这个代理每5秒可以请求一次,我们将IP请求出来,从redis列表队列的左侧插入,要用的时候再从右侧取出,请求成功证明该IP是可用的,将该代理IP从左侧放回,三次都请求失败则认为该代理IP已经失效 代码如下: import requestsimport jsonimport redisimport timer = redis.Redis(host='127.0.0.1', port=6379,db=3)num = r.llen('the_ip

.Net——做一个简单代理IP池

一.缘由. 抓取数据时,有一些网站 设置了一些反爬虫设置,进而将自己本地 IP 地址拉入系统黑名单.从而达到禁止本地 IP 访问数据的请求. 二.思路. 根据其他 代理 IP 网站,进行一个免费的代理 IP 进行搜集,然后进行统一 验证 管理 如下图: 三.抓取包含代理 IP 的网站页面. 抓取来网站代码之后,利用 HtmlAgilityPack 进行 html 的解析.并将代理 IP 验证,存放队列等操作. 四.直接看效果图. 运行效果. 浏览器 请求 :http://127.0.0.1:12

Python3网络爬虫(十一):爬虫黑科技之让你的爬虫程序更像人类用户的行为(代理IP池等)

原文链接: Jack-Cui,http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 1 前言 近期,有些朋友问我一些关于如何应对反爬虫的问题.由于好多朋友都在问,因此决定写一篇此类的博客.把我知道的一些方法,分享给大家.博主属于小菜级别,玩爬虫也完全是处于兴趣爱好,如有不足之处,还望指正. 在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长.今天大众好像更倾向于

实战1:建立代理IP池

一.爬取免费代理IP 1.爬取代理IP: #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Meng Zhaoce import requests from bs4 import BeautifulSoup from multiprocessing.dummy import Pool as ThreadPool #多线程模块 from pymongo import MongoClient data = [] def getIp(page)

python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客

python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客 undefined Python多线程抓取代理服务器 | Linux运维笔记 undefined java如果模拟请求重启路由器(网络爬虫常用),还有java如何下载图片 - baidu_nod的专栏 - 博客频道 - CSDN.NET undefined [多线程数据采集]使用Jsoup抓取数据+破解屏蔽ip访问. - MiniBu - 开源中国社区 undefined 单linux服务器同时拨多条AD