# Goproxy **Repository Path**: sdox/goproxy ## Basic Information - **Project Name**: Goproxy - **Description**: Goproxy Pool Golang 代理池系统,自动抓取代理,检测代理 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-06-17 - **Last Updated**: 2023-05-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, 代理, 代理池, 代理检测, Proxy ## README # Goproxy * Git: https://gitee.com/sdox/goproxy * Issues: https://gitee.com/sdox/goproxy/issues * License: MIT * IRC: #Goproxy on freenode ___ #### 介绍 Goproxy Pool Golang 代理池系统,自动抓取代理,检测代理
启动: ```go run main.go```
编译: ```go build main.go```
>监听:0.0.0.0:5010 >访问:http://127.0.0.1:5010 #### 配置文件 ```yaml cache: key: "proxies" #Redis队列的KEY redis: 192.168.0.224:6379 #Redis连接地址 check: time: "*/10 * * * * ?" #校验周期10秒 http: http://www.166.com #http效验地址 https: https://www.baidu.com #https效验地址 lowest: 30 #代理池伐值,少于30个 timeout: 3 #代理检测超时 logger: dir: ./logs #Log存储路径 file: "%Y%m%d.log" #Log文件名 server: addr: 0.0.0.0:5010 #WEB服务监听地址:端口 ``` #### 目录说明 ```bash ├── app │   ├── apis │   │   └── api.go │   └── jobs │   ├── example.go │   └── jobs.go ├── config │   └── config.yaml ├── go.mod ├── LICENSE ├── main.go ├── pkg │   ├── cache │   │   └── redis.go │   └── config │   └── config.go └── README.md ``` #### JOBS目录说明 * jobs.go >核心调度文件不建议修改 * example.go >任务抓取示例文件: ```go //初始化任务 func init(){ //增加计划任务,5秒种获取一次IP代理 Cron("*/5 * * * * ?", Example) } //获取IP列表方法 func Example() { url := "http://www.example.com/getProxy.json" if Count() < config.GetInt64("check.lowest") { resp := Http("Get", url, nil) if gjson.ValidBytes(resp) && gjson.GetBytes(resp, "code").Int() == 10001 { data := gjson.GetBytes(resp, "data.proxy_list") data.ForEach(func(key, value gjson.Result) bool { println(value.Get("ip").String()) Save(value.Get("ip").String() +":"+ value.Get("port").String(), value.String(), value.Get("timeout").Int()) return true }) } } } ``` #### APIs目录说明 Web APIs的访问控制器,用户通过http获取代理,包含以下几个方法:
```javascript GET / --> Goproxy 代理池 Welcome 检测路径 GET /get --> Goproxy/app/apis.Get 随机获取代理 GET /pop --> Goproxy/app/apis.Pop 随机获取代理(并删除) GET /all --> Goproxy/app/apis.All 获取全部代理 GET /raw --> Goproxy/app/apis.Raw 获取代理数据 ```