该仓库名为 Scylla
,是一个智能代理 IP 池工具,旨在从互联网提取内容,并助力在人工智能时代构建自己的大语言模型。以下是对该仓库的详细介绍:
核心特性
- 自动化代理 IP 管理:自动进行代理 IP 的爬取与验证,确保代理池中的 IP 有效可用。
- 便捷的 API 接口:提供简单易用的 JSON API,方便开发者调用代理 IP 资源。
- 美观的用户界面:拥有简洁美观的 Web 界面,可展示代理的地理分布等信息。
- 快速启动:最少仅需一条命令即可启动项目。
- HTTP 代理服务:提供简单的 HTTP 转发代理服务器。
- 集成能力:可与
Scrapy
和requests
仅用一行代码实现集成。 - 无头浏览器爬虫:支持无头浏览器进行网页内容爬取。
安装方式
- Docker 安装(推荐):
bash docker run -d -p 8899:8899 -p 8081:8081 -v /var/www/scylla:/var/www/scylla --name scylla wildcat/scylla:latest
- pip 安装:
bash pip install scylla scylla --help scylla # 运行爬虫和 Web 服务器
- 源码安装:
bash git clone https://github.com/imWildCat/scylla.git cd scylla pip install -r requirements.txt cd frontend npm install cd .. make assets-build python -m scylla
使用示例
JSON API
获取代理 IP 列表:
http://localhost:8899/api/v1/proxies
支持的可选 URL 参数如下:
| 参数 | 默认值 | 描述 |
| --- | --- | --- |
| page
| 1
| 页码 |
| limit
| 20
| 每页显示的代理数量 |
| anonymous
| any
| 是否显示匿名代理,可选值:true
(仅匿名代理),false
(仅透明代理) |
| https
| any
| 是否显示 HTTPS 代理,可选值:true
(仅 HTTPS 代理),false
(仅 HTTP 代理) |
| countries
| 无 | 按国家筛选代理,格式示例:US
或多国家 US,GB
|
HTTP 代理服务器
使用 curl
示例:
curl http://api.ipify.org -x http://127.0.0.1:8081
使用 requests
示例:
import requests
requests.get('http://api.ipify.org', proxies={'http': 'http://127.0.0.1:8081'})
Web 界面
- 代理 IP 列表:
http://localhost:8899/
- 代理 IP 全球分布:
http://localhost:8899/#/geo
项目结构
仓库包含以下主要目录和文件:
- scylla
:项目核心代码目录。
- tests
:测试代码目录,包含各类测试用例。
- scripts
:脚本文件目录。
- frontend
:前端代码目录,包含用户界面相关代码。
- docs
和 docs_zh
:分别为英文和中文文档目录。
- Dockerfile
和 docker-compose.yml
:用于 Docker 构建和部署。
- Makefile
:包含项目构建、打包、上传等常用命令。
开发与贡献
若要参与项目开发,可按以下步骤操作:
git clone https://github.com/imWildCat/scylla.git
cd scylla
pip install -r requirements.txt
npm install
make assets-build
测试
在本地运行测试的命令如下:
pip install -r tests/requirements-test.txt
pytest tests/
命名由来
项目名称 Scylla
源自美国电视剧《越狱》中一组记忆芯片的名称,以此向该剧致敬。
捐助
如果觉得项目有用,可通过以下方式进行捐助: - GitHub Sponsor:https://github.com/sponsors/imWildCat - PayPal:点击捐助 - 支付宝或微信:扫描指定二维码进行捐助。
许可证
项目采用 Apache License 2.0 许可证,详情请参阅 LICENSE 文件。