Skip to content

WINNY1/Proxy-Pool

 
 

Repository files navigation

Asynchronous Efficient proxy pool

基于Python3+AsyncIO+APScheduler的高性能异步代理池

整体更新,由于在使用Gevent的微线程时经常会出现一些奇怪的问题,所以我们选择还是使用AsyncIO和aiohttp

1.jpg

HTTP代理分类

按匿名功能分类

是否具有隐藏IP的功能。

  • 非匿名代理:不具有匿名功能。
  • 匿名代理。使用此种代理时,虽然被访问的网站不能知道你的IP地址,但仍然可以知道你在使用代理,有些侦测ip的网页也仍然可以查到你的ip。
  • 高度匿名代理:使用此种代理时,被访问的网站不知道你的IP地址,也不知道你在使用代理进行访问。此种代理的隐藏IP地址的功能最强。

按请求信息的安全性分类

  • 全匿名代理:不改变你的request fields(报文),使服务器端看来就像有个真正的客户浏览器在访问它。当然,你的真实IP是隐藏起来的。服务器的网管不会认为你使用了代理。  
  • 普通匿名代理:能隐藏你的真实IP,但会更改你的request fields,有可能会被认为使用了代理,但仅仅是可能,一般说来是没问题的。不过不要受它的名字的误导,其安全性可能比全匿名代理更高,有的代理会剥离 你的部分信息(就好比防火墙的stealth mode),使服务器端探测不到你的操作系统版本和浏览器版本。
  • elite代理,匿名隐藏性更高,可隐藏系统及浏览器资料信息等。此种代理安全性特强。
  • 透明代理(简单代理):透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如Garden 2程序。

按用途分类

  • Http代理:代理客户机的http访问,主要代理浏览器访问网页,它的端口一般为80、8080、3128等。
  • SSL代理:支持最高128位加密强度的http代理,可以作为访问加密网站的代理。加密网站是指以https://开始的网站。ssl的标准端口为443。
  • HTTP CONNECT代理:允许用户建立TCP连接到任何端口的代理服务器,这种代理不仅可用于HTTP,还包括FTP、IRC、RM流服务等。
  • FTP代理:代理客户机上的ftp软件访问ftp服务器,其端口一般为21、2121。
  • POP3代理:代理客户机上的邮件软件用pop3方式收邮件,其端口一般为110。
  • Telnet代理:能够代理通信机的telnet,用于远程控制,入侵时经常使用。其端口一般为23。
  • Socks代理: 是全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分 socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。
  • TUNNEL代理:经HTTPTunnet程序转换的数据包封装成http请求(Request)来穿透防火墙,允许利用HTTP服务器做任何TCP可以做的事情,功能相当于Socks5。
  • 文献代理:可以用来查询数据库的代理,通过这些代理,可以获得互联网的相关科研学术的数据库资源,例如查询Sciencedirect网站(简称SD)、Academic Press、IEEE,SPRINGER等数据库。
  • 教育网代理:指学术教育机构局域网通过特定的代理服务器可使无出国权限或无访问某IP段权限的计算机访问相关资源。
  • 跳板代理:应用于跳板程序,可以看作一种具有动态加密的特殊socks5代理,,也可直接用于PSD软件。其端口一般为1813。
  • Ssso代理:代理客户机上的ssso程序访问远程网站,具有SSL加密强度的超级代理,支持socks。
  • Flat代理:代理客户机上的flatsurfer程序访问远程网站,具有高强度加密数据流的特殊代理,支持socks,最大可设置三次级联,可以设置穿越代理。其端口一般为6700。
  • SoftE代理:代理客户机上的SoftEther程序访问远程网站,应用虚拟集线器HUB和虚拟网卡技术,具备VPN功能及多种认证方式的代理,符合https协议。

已支持的代理类型

  • SSL代理
  • HTTP代理
  • Socks5代理
  • Socks4代理 支持,但是没有启用,因为比较少,只是增加了验证工作量
  • CONNECT代理 支持,但是没有启用
  • SMTP代理 支持,但是没有启用

TODO LIST

  • 多线程 速度慢,效率低
  • AsyncIO v2.0中支持,但是如果目标主机断开连接会报错,等人修复
  • Gevent 目前用的方案,效果不错,效率颇高,几千个代理验证任务也可以在20秒内完成,有时间写个Benchmark,或者哪位可以提供一下
  • Redis 最开始用的Redis存储数据,但是可拓展性差一些,故而放弃了,可在v1.0找到相关代码
  • Sqlalchemy 著名的库,非常好用的ORM框架,数据更多元化了
  • APScheduler 方便的调度器支持库
  • 通过数据库添加Fetcher
  • 通过配置文件添加Fetcher
  • 代理评分系统
  • 代理Api
  • 代理网页界面
  • 错误类型整合
  • 自动编译http_parser
  • ipdb数据库
  • 更多IP数据库
  • 匿名性校验 现在通过我自建的httpbin来进行验证,因为httpbin.org自己带有nginx负载均衡,所以http头已经被修改过了,所以选择自己搭建验证服务
  • 不同的Fetcher使用不同的代理校验器
  • ProxyManager参数整合

About

基于Asyncio的高性能异步代理池

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 74.5%
  • Python 23.4%
  • HTML 2.1%