wowo515151/Scrape
GitHub: wowo515151/Scrape
一个基于关键词的网络采集与英文正文提取工具,集成多层级搜索回退和 prompt 注入检测,将清洗后的文本打包下载。
Stars: 0 | Forks: 0
# Scrape Engine
🌐 **在线演示:** [https://wowo515151.github.io/Scrape/](https://wowo515151.github.io/Scrape/)
Scrape Engine 是一个高性能的 HTML/文本采集器和自动化的 prompt 注入安全分析扫描器。它允许你使用多层级的 DuckDuckGo 搜索网络,在绕过常见屏蔽机制的同时直接下载目标内容,提取纯净文本,并检查自然英文文本中是否存在潜在的 prompt 注入威胁。
## 🎨 功能与技术
- **多层级 DuckDuckGo 抓取代理**:通过级联回退策略(DuckDuckGo Lite 表单 POST -> DuckDuckGo HTML GET -> DuckDuckGo Lite GET -> Wikipedia OpenSearch -> 静态回退)绕过速率限制和抓取保护,无需任何付费的 API 密钥。
- **Wayback Machine 回退**:如果实时页面返回访问限制代码(例如 HTTP 403 Forbidden 或 401 Unauthorized),引擎会自动检查并从 Internet Archive 的 Wayback Machine 下载最接近的文本快照。
- **智能英文正文提取器**:通过清除 HTML 标记、剥离代码块/语法、过滤脚本/样式表资源、排除标题格式的促销标头以及过滤嘈杂的短段文本(无句号且 <=3 个词),启发式地提取核心文章正文。
- **Security Guard 分析**:使用滚动窗口拆分评估提取的文本,以检测 prompt 注入攻击。
- **React 19 & Tailwind CSS**:优雅、深色模式优先的石板色仪表板,具备实时日志记录、状态标签和布局动画。
- **Express 后端**:安全的全栈 Node.js 服务器,提供 API endpoint(`/api/search` 和 `/api/fetch`)。
## 🚀 快速开始
### 前置条件
你需要安装 [Node.js](https://nodejs.org/)(v18 或更高版本)。
### 安装说明
1. 克隆仓库:
git clone https://github.com/wowo515151/Scrape.git
cd Scrape
2. 安装依赖:
npm install
3. (可选)配置环境变量。请参阅 `.env.example` 来定义所需的任何自定义 API 密钥或值。
### 运行 Naabu
启动全栈开发服务器:
```
npm run dev
```
应用程序将在 **http://localhost:3000** 上启动。
### 运行测试
运行启发式提取器和 Security Guard 的集成测试套件:
```
npm run test
```
### 构建生产版本
编译 React bundle 并将 TypeScript Express 服务器编译为经过生产优化的 bundle:
```
npm run build
npm start
```
## 🚀 GitHub Pages 与静态环境兼容性
为了最大限度地提高通用性,Scrape Engine 采用了 **双引擎设计**,无论是作为全栈系统还是纯静态网站,都能完美运行:
1. **自动后端检测**:在启动时,UI 会自动检查 `/api/health`。如果检测到 Express 服务器且状态正常,应用程序将以 **全栈模式** 运行,通过安全的服务器端代理路由搜索和下载步骤。
2. **Serverless 静态模式回退**:如果托管在像 **GitHub Pages** 这样仅支持静态环境的提供商上,且后端无法访问,系统会优雅地禁用 Express 模式并强制使用 **静态模式**。
3. **CORS 代理支持**:在静态模式下:
- 搜索查询将回退到直接的、客户端安全的 endpoint(例如 Wikipedia OpenSearch API 及支持浏览器请求的相关集成)。
- 文章获取利用可自定义的 CORS-Anywhere 代理(如 `https://api.allorigins.win/raw?url=`),可在侧边栏设置中直接配置。
### 📦 部署到 GitHub Pages
我们已经在 `.github/workflows/deploy.yml` 中预先配置了完全自动化的部署流水线:
1. 在 GitHub 上创建一个新仓库并提交此代码库。
2. 转到你仓库的 **Settings** -> **Pages**(位于侧边栏)。
3. 在 **Build and deployment** -> **Source** 下,选择 **GitHub Actions**。
4. 将你的更改推送到 `main` 或 `master` 分支。Actions 流水线将编译生产就绪的构建并立即发布!
## ☁️ 推荐的全栈部署主机
如果你更喜欢运行全栈版本以利用直接的、无代理的服务器端抓取:
- **Google Cloud Run**:预配置的容器主机(使用仓库中的标准文件自动构建和运行)。
- **Render**:将你的仓库作为“Web Service”连接:
- **Build Command**:`npm run build`
- **Start Command**:`npm run start`
- **Fly.io**:在你的目录中执行 `fly launch` 以自动配置并建立 Express 后端服务。
- **Railway**:链接你的仓库以立即启动容器。
## 📄 License
该项目是开源的,并基于 [MIT License](LICENSE) 授权。
标签:AI安全, Chat Copilot, CISA项目, GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, Web安全, 提示词注入检测, 数据提取, 自动化攻击, 蓝队分析