开源一款高可用的分布式代理 IP 池(附性能测试图)

2018-03-06 14:01:41 +08:00
 resolvewang

项目地址: https://github.com/SpiderClub/haipproxy

陆陆续续花了近六个月的时间实现了一款高可用的分布式代理 IP 池HAipproxy,它的主要用处是为各类被限制 IP 的爬虫提供基础的代理 IP 支撑。HAipproxy 的高可用有两层含义:(1)代理 IP 资源的高可用;(2)项目各个组件的高可用。HAipproxy 的代理 IP 源均来自互联网公开的资源,项目配置了总计 30+的墙内外代理资源提供网站,所以代理 IP 资源的数量并不是 HAipproxy 主要关心的。它主要关心的是如何从海量高度不可用的代理 IP 资源中提取出高质量低延迟的代理 IP 供爬虫使用。为此,HAipproxy 制定了一些列的校验和 IP 筛选策略。在实现 HAipproxy 之前,楼主也调研过现有的代理 IP 付费方案和开源的代理 IP 方案,付费方案中有一些质量较好的但是费用比较高,其它的和开源的项目的效果都差强人意。免费+高性能,这也是HAipproxy的核心竞争力。

Talk is cheap,我们来看点实际的东西。下面是楼主近日以知乎为测试对象,单机条件下对 HAipproxy 进行性能测试的测试结果

可以看到请求量最快可以达到 1w+/hour,楼主对一天的请求量进行了统计,有19w,效果还算令人满意。

V 友们路过的话不妨给个star吧,有使用这个项目的需求则更好了。

新年新气象,祝看了这篇广告贴和点了star的 V 友们今年升职加薪,技术精进一步。

19176 次点击
所在节点    分享创造
76 条回复
resolvewang
2018-03-16 09:30:29 +08:00
@Betsy #60 master 分支更新了一些代码,不向后兼容,目前文档由于精力原因还没更新,你可以下载 release 当中的 0.1 版本进行测试  2.你可以使用 redisdesktopmanager 来查看已抓取到的代理,肯定是没问题的
resolvewang
2018-03-16 09:32:09 +08:00
https://github.com/SpiderClub/haipproxy/releases

这里下载

同时也要注意 IP 池有个预热的过程,大概在半小时到一小时之间,因为刚启动是不可能马上就有已校验的代理 IP 的
EricInBj
2018-03-16 09:42:14 +08:00
赞赞,暂时用不着,先收着
resolvewang
2018-03-16 13:29:25 +08:00
@EricInBj #63 谢谢支持
salamanderMH
2018-03-26 18:01:46 +08:00
好东西,就是有点担心,用的人多了,代理池取到 ip 的概率会受影响吧
resolvewang
2018-03-26 19:16:49 +08:00
@salamanderMH #65 嗯,是的,我开源它的主要目的在于分享这种校验和筛选 IP 的策略,虽然现在代理源还算多,但是可能也经不住成千上万的用户同时使用,特别是抓取网站大都相同的情况。正是考虑到你说的这种情况,所以写了几个文档,用以让用户了解所有组件的作用,怎么进行代理源扩展和定制校验器。这样大家可以接入一些项目没包括的代理源,甚至付费代理源。效果肯定是能通过项目的策略来保证的
iamnoten
2018-03-27 14:32:13 +08:00
@resolvewang 不好意思,打扰了,我在虚拟机上搭建环境,但是 sudo docker pull scrapinghub/splash, 总是报错 error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/39/3926e5aac017cdd47961dccb8dcb83fc1789ec1ccfefcaa4f03f81aa4c10a3c8/data?Expires=1522175127&Signature=UfxYM9jhI-tqCgvfqfbg8mCpDQErJhxSawpQnX6QWLCUFZrq5xOKHOUdSNC19HnqnjhMi7e7GeNq1tfuxjn7HNLNDYnuDduaF9mG4uwJvbzu9b9~~DOnoWUML207DIS54tV4JCI~ix0PZjuTEtvk1efh3BA-U-Onl0UObJ8ggZQ_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: net/http: TLS handshake timeout
不知道你有没有遇到过这个问题?
在网上搜了很多,有说是虚拟机的问题,有说是墙的问题,试了很多办法包括调整 mtu,设置代理,都没有成功。

谢谢
resolvewang
2018-03-28 10:42:18 +08:00
@iamnoten #67 TLS 这个感觉是网络问题啊,握手失败了。你能用 docker pull 拉取其它镜像吗?如果不行的话,可以搜索一下 docker 镜像加速,比如设置阿里云的 docker 镜像源等

你也可以尝试另外一台虚拟机或者宿主机上试试啊,我没遇到过这个问题,无法给出建设性的解答,不好意思哈
resolvewang
2018-03-28 10:43:04 +08:00
@iamnoten #67 此外,你也可以将它的镜像下载下来,在本机再打包之类的
chi1st
2018-03-31 01:05:22 +08:00
谢谢楼主,试用了一下很强大,要是能有直接与 scrapy 对接的接口就好了(
resolvewang
2018-03-31 10:26:23 +08:00
@chi1st #70 感谢支持。可以直接调用 ProxyFetcher,为 scrapy 写一个中间件就行了。

目前在找工作,精力不是很够。预计下一次大的更新会在几个月之后,可能会扩展一些客户端、添加对一些爬虫框架的原生支持和优化筛选和调度算法
382601486
2018-04-19 22:23:48 +08:00
@resolvewang 环境安装老是失败,有没有一键安装什么的?谢谢
Berny
2019-02-15 14:17:25 +08:00
赞,可以支持自己设定 IP 池么?
Sum0l
2019-06-04 13:56:15 +08:00
感谢分享,已经试用了,但目前很多源已经失效,可用的 ip 不多。考虑加入付费啦
resolvewang
2019-07-14 10:59:49 +08:00
@Sum0l 公开源很久没维护了,因此源都失效了,加入付费源效果就很明显了
Nasser
2020-02-10 00:00:38 +08:00
有国外的源吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/435313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX