这是一个灵活的代理池服务。它提供两种代理使用方法:使用http接口提取随机可用ip,和使用squid3做动态代理转发。
此种情况下,所有请求通过squid进行转发,不需要用户手动切换ip。
使用方法:
- 设置代理ip为
代理池主机地址
:3128(默认端口3128,可在squid.conf
中进行修改),根据请求类型添加https或http前缀。
优点:
- 使用简单,设置好固定的代理ip即可,随机的代理切换对用户是透明的。
缺点:
- 1.https下的squid负载均衡存在一定问题,没法充分利用代理资源(我试了很多方法,都无法在https下生效,但在http下是正常的。大佬们如果发现某种方法有效,劳烦告知,感激!)。
- 2.当squid重新加载配置文件时存在很短时间的中断期,此时代理无法正常使用。
- 3.请求将被squid服务转发,此过程会占用squid所在的服务器资源。
此种情况下,需要先访问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接口,增加了额外的耗时。
- clone项目到目标服务器。
- 进入项目根目录。
- 安装requirements.txt中的相关依赖。
- 修改
settings.py
中的配置信息。 - 站大爷用户请替换
get_ip.py
脚本中提取api,其他用户需要修改代码,参考get_ip.py
的代码做细节调整即可,整体逻辑都是相通的。 - 使用
python3 scheduler.py
一键开启各个服务。建议使用screen或其他工具使程序后台运行。
代理依赖于站大爷代理服务,需要定期给站大爷续费才能保证代理服务正常运行。 使用站大爷代理服务,是因为它提供了密码访问模式,不再限定使用代理的主机ip,这一点挺不错的。不过它的代理质量很一般。
- 抽象的力度还是有些不足,后面有时间的话再做改进。