# DynamicWebProxy **Repository Path**: alianyone/dynamic-web-proxy ## Basic Information - **Project Name**: DynamicWebProxy - **Description**: 自动获取可用http代理的库 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-06-13 - **Last Updated**: 2022-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: http代理, WebProxy ## README # DynamicWebProxy #### 介绍 自动获取可用http代理的库 #### 使用方法 - 收集可用的Http代理数据源,并编写自己的分析器来爬取相应的Http代理信息。 - 创建代理工厂类 - 在代理工厂中添加自己写的分析器 - 获取可用代理 #### 分析器 代码中写了几个简单的示例 - KuaiGenerator - MifengGenerator - XiaohuanGenerator #### 代理工厂示例 ```csharp public class ProxyFactory : ProxyGenerator { public override event EventHandler? OnGenerateLoadSucceed; public override event EventHandler? OnGenerateLoadFailed; public override async Task GenerateProxyItems() { Source = "代理池"; ProxyGenerator xiaohuan = new XiaohuanGenerator() { MaxValidTimes = 2 }; xiaohuan.OnGenerateLoadSucceed += OnGenerateLoadSucceed; xiaohuan.OnGenerateLoadFailed += OnGenerateLoadFailed; await xiaohuan.GenerateProxyItems(); ProxyGenerator kuai = new KuaiGenerator() { MaxValidTimes = 2 }; kuai.OnGenerateLoadSucceed += OnGenerateLoadSucceed; kuai.OnGenerateLoadFailed += OnGenerateLoadFailed; await kuai.GenerateProxyItems(); ProxyGenerator mifeng = new MifengGenerator() { MaxValidTimes = 2 }; mifeng.OnGenerateLoadSucceed += OnGenerateLoadSucceed; mifeng.OnGenerateLoadFailed += OnGenerateLoadFailed; await mifeng.GenerateProxyItems(); ProxyItems.AddRange(xiaohuan.ProxyItems); ProxyItems.AddRange(kuai.ProxyItems); ProxyItems.AddRange(mifeng.ProxyItems); #if DEBUG await TestAll(); #endif } } ``` #### 使用方法 ```csharp var proxy = await ProxyHelper.GeneralProxyAsync(); System.Diagnostics.Debug.WriteLine((proxy as WebProxy)?.Address?.ToString()); ```