{"id":13776051,"url":"https://github.com/xnffdd/proxypool","last_synced_at":"2026-01-17T04:11:18.333Z","repository":{"id":216003385,"uuid":"114612448","full_name":"xnffdd/proxypool","owner":"xnffdd","description":"自建免费IP代理池。","archived":false,"fork":false,"pushed_at":"2019-03-03T13:58:47.000Z","size":1429,"stargazers_count":76,"open_issues_count":5,"forks_count":34,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-03T17:12:27.627Z","etag":null,"topics":["ip","pool","proxy","python","spider"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xnffdd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-12-18T08:01:47.000Z","updated_at":"2024-04-04T04:20:21.000Z","dependencies_parsed_at":"2024-01-28T03:17:29.519Z","dependency_job_id":"f753ff00-a213-409c-8e60-a7dcf2c5eb58","html_url":"https://github.com/xnffdd/proxypool","commit_stats":null,"previous_names":["xnffdd/proxypool"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xnffdd%2Fproxypool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xnffdd%2Fproxypool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xnffdd%2Fproxypool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xnffdd%2Fproxypool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xnffdd","download_url":"https://codeload.github.com/xnffdd/proxypool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225031471,"owners_count":17410079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ip","pool","proxy","python","spider"],"created_at":"2024-08-03T17:01:58.727Z","updated_at":"2024-11-17T11:30:58.186Z","avatar_url":"https://github.com/xnffdd.png","language":"Python","funding_links":[],"categories":["\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"b2241c68725526c88e69f1d71405c6b2\"\u003e\u003c/a\u003e代理爬取\u0026\u0026代理池"],"readme":"# proxypool\n\n自建免费代理IP池\n\n## 系统功能\n\n- 自动爬取互联网上公开的免费代理IP（目前已支持西刺代理、快代理、IP181）\n- 周期性验证代理IP有效性\n- 提供http接口获取可用IP\n\n## 系统架构\n\n![系统架构](https://raw.githubusercontent.com/lsdir/proxypool/master/image/architecture.png)\n\n## 项目源码结构\n- /db 数据库操作\n- /schedule 后台周期任务\n- /spider 爬虫\n- /util 通用工具\n- /web web服务\n- /log 日志存储文件夹\n- config.py 全局配置\n- main.py 启动入口\n\n## 部署运行\n\n- 下载整个项目\n- 安装Python3\n- 安装Python包\n```\npip install -r requirements.txt\n```\n- 安装MySQL数据库\n- 初始化建表 db/proxy.sql\n- 修改配置文件 config.py\n- 运行 main.py\n```\npython main.py\n```\n\n\n## HTTP接口\n\n### 1. 获取单个可用IP\n\n##### 基本信息\n\nURL|http://localhost:9999/get\n:---|:---\nHTTP请求方式|GET\n方法返回|JSON\n\n##### 请求参数（bodyParam）\n\n参数名|类型|必填|参数位置|描述|默认值\n---|---|---|---|---|---\ncheck_in_hour|float|否|urlParam|代理最后验证时间（小时）以内|24\nresponse_time_in_second|float|否|urlParam|代理响应时间（秒）以内|null\nprotocol|string|否|urlParam|代理网络协议，http/https|null\nanonymity|string|否|urlParam|代理匿名性，transparent/anonymous/high_anonymous|null\n\n##### 请求示例（Python示例）\n\n```\n    #!/usr/bin/env python3\n    # -*- coding: utf-8 -*-\n\n    import requests\n\n    url = \"http://localhost:9999/get\"\n    querystring = {\"anonymity\":\"high_anonymous\",\"response_time_in_second\":\"1.5\"}\n    response = requests.request(\"GET\", url, params=querystring)\n\n    print(response.json())\n```\n\n##### JSON返回示例\n\n```\n{\n    \"ret\": 0,\n    \"data\": {\n        \"anonymity\": \"high_anonymous\",\n        \"check_time\": \"2017-12-20 13:55:17\",\n        \"country\": \"CN\",\n        \"export_address\": [\n            \"120.25.253.234\"\n        ],\n        \"from\": \"快代理\",\n        \"grab_time\": \"2017-12-20 13:54:55\",\n        \"host\": \"120.25.253.234\",\n        \"port\": \"8118\",\n        \"protocol\": \"http\",\n        \"response_time\": 1.45\n    }\n}\n```\n\n### 2. 获取全部可用IP\n\n##### 基本信息\n\nURL|http://localhost:9999/get_all\n:---|:---\nHTTP请求方式|GET\n方法返回|JSON\n\n##### 请求参数（bodyParam）\n\n参数名|类型|必填|参数位置|描述|默认值\n---|---|---|---|---|---\ncheck_in_hour|float|否|urlParam|代理最后验证时间（小时）以内|24\nresponse_time_in_second|float|否|urlParam|代理响应时间（秒）以内|null\nprotocol|string|否|urlParam|代理网络协议，http/https|null\nanonymity|string|否|urlParam|代理匿名性，transparent/anonymous/high_anonymous|null\n\n##### 请求示例（Python示例）\n\n```\n    #!/usr/bin/env python3\n    # -*- coding: utf-8 -*-\n\n    import requests\n\n    url = \"http://localhost:9999/get_all\"\n    querystring = {\"anonymity\":\"high_anonymous\",\"response_time_in_second\":\"1.5\",\"protocol\":\"https\"}\n    response = requests.request(\"GET\", url, params=querystring)\n\n    print(response.json())\n```\n\n##### JSON返回示例\n\n```\n{\n    \"ret\": 0,\n    \"data\": [\n        {\n            \"anonymity\": \"high_anonymous\",\n            \"check_time\": \"2017-12-20 14:10:25\",\n            \"country\": \"CN\",\n            \"export_address\": [\n                \"118.114.77.47\"\n            ],\n            \"from\": \"西刺代理\",\n            \"grab_time\": \"2017-12-20 14:09:36\",\n            \"host\": \"118.114.77.47\",\n            \"port\": \"8080\",\n            \"protocol\": \"https\",\n            \"response_time\": 1.41\n        },\n        {\n            \"anonymity\": \"high_anonymous\",\n            \"check_time\": \"2017-12-20 13:09:40\",\n            \"country\": \"CN\",\n            \"export_address\": [\n                \"119.29.178.21\"\n            ],\n            \"from\": \"西刺代理\",\n            \"grab_time\": \"2017-12-14 16:17:52\",\n            \"host\": \"119.29.178.21\",\n            \"port\": \"8118\",\n            \"protocol\": \"https\",\n            \"response_time\": 1.11\n        }\n    ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxnffdd%2Fproxypool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxnffdd%2Fproxypool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxnffdd%2Fproxypool/lists"}