# open_proxy_pool **Repository Path**: AaronJny/open_proxy_pool ## Basic Information - **Project Name**: open_proxy_pool - **Description**: 一个灵活的代理池服务。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概述 这是一个灵活的代理池服务。它提供两种代理使用方法:使用http接口提取随机可用ip,和使用squid3做动态代理转发。 ## 1.使用squid 此种情况下,所有请求通过squid进行转发,不需要用户手动切换ip。 使用方法: - 设置代理ip为`代理池主机地址`:3128(默认端口3128,可在`squid.conf`中进行修改),根据请求类型添加https或http前缀。 优点: - 使用简单,设置好固定的代理ip即可,随机的代理切换对用户是透明的。 缺点: - 1.https下的squid负载均衡存在一定问题,没法充分利用代理资源(我试了很多方法,都无法在https下生效,但在http下是正常的。大佬们如果发现某种方法有效,劳烦告知,感激!)。 - 2.当squid重新加载配置文件时存在很短时间的中断期,此时代理无法正常使用。 - 3.请求将被squid服务转发,此过程会占用squid所在的服务器资源。 ## 2.使用http接口 此种情况下,需要先访问http接口获取一个随机代理ip,然后使用这个代理ip进行网络访问。 使用方法: - 1.访问`http://代理池主机地址:9102/random/`(端口可在`settings.py`中修改),将返回一个代理ip,形如`username:password@59.174.116.74:29687`(使用密码访问)或`59.174.116.74:29687`(不使用密码访问)。 - 2.根据请求类型,为代理加上https或http前缀。 - 3.设置使用此代理ip进行网络请求。 优点: - 1.http接口一直可用,不存在中断期。 - 2.不需要squid做中转,请求直接交给目标代理,并直接从目标代理获取数据,速度更快,可靠性更高。 - 3.每次随机获取ip,负载基本均衡。 缺点: - 1.需要用户控制代理ip的切换,相较于squid来说麻烦一点。 - 2.每次发起请求时都需要额外请求一次http接口,增加了额外的耗时。 # 运行说明 1. clone项目到目标服务器。 2. 进入项目根目录。 3. 安装requirements.txt中的相关依赖。 4. 修改`settings.py`中的配置信息。 5. 站大爷用户请替换`get_ip.py`脚本中提取api,其他用户需要修改代码,参考`get_ip.py`的代码做细节调整即可,整体逻辑都是相通的。 6. 使用`python3 scheduler.py`一键开启各个服务。建议使用screen或其他工具使程序后台运行。 # 补充说明 代理依赖于站大爷代理服务,需要定期给站大爷续费才能保证代理服务正常运行。 使用站大爷代理服务,是因为它提供了密码访问模式,不再限定使用代理的主机ip,这一点挺不错的。不过它的代理质量很一般。 # TODO: - 抽象的力度还是有些不足,后面有时间的话再做改进。