search-result-scraper-markdown 项目介绍
项目简介
search-result-scraper-markdown 是一个强大的网络抓取工具,它通过使用 FastAPI、SearXNG 和 Browserless 将搜索结果转换为 Markdown 格式。该项目还整合了 AI 技术来优化搜索结果的过滤。为开发者提供了类似 Jina.ai、FireCrawl AI、Exa AI 和 2markdown 的替代选择,这些都是用于网络抓取和搜索引擎解决方案的工具。
项目特色
- FastAPI:一个现代且快速的 Python API 框架,适用于构建高性能的 API。
- SearXNG:一个开源的互联网元搜索引擎,支持多种搜素资源。
- Browserless:提供网页浏览器自动化服务,实现无头浏览操作。
- Markdown 输出:将抓取的 HTML 内容高效地转换为 Markdown 格式。
- 代理支持:使用代理保障抓取过程中的安全与匿名。
- AI 集成 (Reranker AI):利用 AI 技术对搜索结果进行过滤,为用户提供最相关的内容。
- YouTube 转录:抓取 YouTube 视频转录内容。
- 图片和视频搜索:利用 SearXNG 抓取图片和视频结果。
系统需求
要使用此项目,您需要确保以下内容已安装:
- Python 3.11
- Virtualenv
- Docker
安装与设置
使用 Docker 进行安装
-
克隆项目代码库:
git clone https://github.com/essamamdani/search-result-scraper-markdown.git cd search-result-scraper-markdown
-
使用 Docker Compose 运行项目:
docker compose up --build
此设置支持 .env
或 main.py
文件更改时无需重启 Docker,自动重新加载更改。
手动安装步骤
-
克隆项目代码库:
git clone https://github.com/essamamdani/search-result-scraper-markdown.git cd search-result-scraper-markdown
-
创建并激活虚拟环境:
virtualenv venv source venv/bin/activate
-
安装依赖项:
pip install -r requirements.txt
-
在根目录创建一个
.env
文件并配置相关参数。 -
启动 FastAPI 应用程序:
uvicorn main:app --host 0.0.0.0 --port 8000
使用方法
搜索功能
发送 GET 请求到根端点 /
,通过 q
(搜索关键词)、num_results
(结果数量)和 format
(响应格式:JSON 或默认 Markdown)参数执行搜索。
示例:
curl "http://localhost:8000/?q=python&num_results=5&format=json" # 请求JSON格式
curl "http://localhost:8000/?q=python&num_results=5" # 默认Markdown格式
获取 URL 内容
发送 GET 请求到 /r/{url:path}
端点以将指定 URL 的内容抓取并转换为 Markdown 格式。
示例:
curl "http://localhost:8000/r/https://example.com&format=json" # 请求JSON格式
curl "http://localhost:8000/r/https://example.com" # 默认Markdown格式
获取图片和视频
发送 GET 请求到 /images
或 /videos
端点获取图片或视频的搜索结果。
示例:
curl "http://localhost:8000/images?q=puppies&num_results=5"
curl "http://localhost:8000/videos?q=cooking+recipes&num_results=5"
使用代理
项目使用 Geonode 的代理进行网络抓取,以确保安全性和匿名性。配置细节可参照 .env
文件中的示例。
路线图
项目当前已实现以下功能:
- FastAPI 框架
- SearXNG 集成
- Browserless 自动化
- Markdown 格式输出
- 代理支持
- AI 集成过滤
- YouTube 转录获取
- 图片和视频搜索功能
参与贡献
欢迎贡献!如有兴趣,请提交 Pull Request 以帮助改善项目。