使用说明
网络爬虫(AI代理)
一个由以下组件构建的交互式CLI AI代理 LangGraph 和 OpenRouter 它可以搜索网络,抓取任何URL,并获取最新新闻——所有这些都可以通过一个对话提示完成。
代理根据您的要求决定使用哪个工具:
特性
- 会话式CLI——只需键入您想要的内容;代理人选择了正确的工具。
- 通过LangGraph实现多工具推理循环(模型可以调用工具,读取结果,然后回答)。
- 内存检查点,以便代理将上下文保持在会话中。
- 智能路由:明确的短语,如 “搜索网络”, 查找,或 “最佳实践” 强制进行实时搜索,而不是凭记忆回答。
- 抓取页面的内容会自动截断,以保持在模型上下文限制范围内。
需求
- Python 3.12 (建议使用--3.14可能会遇到一些依赖项的构建问题)
- 一 OpenRouter API密钥(必需)
- 要启用的工具的可选API密钥:
- Tavily(网络搜索)
- Firecrawl(URL抓取)
- 新闻API(新闻)
安装
1.克隆并进入项目
git clone <your-repo-url>
cd Web_Scraper
2.创建虚拟环境
python3.12 -m venv venv
如果你使用Homebrew Python 3.12:
/opt/homebrew/opt/python@3.12/bin/python3.12 -m venv venv
激活
# macOS / Linux
source venv/bin/activate
# Windows
venv\Scripts\Activate
3.安装依赖项
pip install --upgrade pip
pip install -r requirements.txt
4.配置环境变量
cp .env.example .env
编辑 .env 并设置为最小值:
OPENROUTER_API_KEY=your_openrouter_api_key
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
添加您拥有的任何可选密钥:
TAVILY_API_KEY=your_tavily_key
FIRECRAWL_API_KEY=your_firecrawl_key
NEWS_API_KEY=your_newsapi_key
跑
从项目根:
source venv/bin/activate
python scraper/scraper.py
在 Enter : 提示,尝试以下操作:
search Nobel Prize winners 2025Give me 5 actor namesScrape https://example.comLatest news on tesla
每轮键入一个新查询——代理会记住会话中的对话。
项目结构
Web_Scraper/
├── scraper/
│ ├── scraper.py # LangGraph agent + CLI loop
│ ├── tools.py # Tavily, Firecrawl, and NewsAPI tools
│ └── prompts.py # System prompt that guides tool selection
├── requirements.txt
├── .env.example
└── README.md
可选:使用 uv 更快的安装
紫外线 是一个快速的Python包和项目管理器(比pip快10-100倍)。
安装uv(macOS/Linux):
curl -LsSf https://astral.sh/uv/install.sh | sh
创建环境并安装依赖项:
uv venv .venv --python 3.12
source .venv/bin/activate
uv pip install -r requirements.txt
uv run python scraper/scraper.py
您可以使用 pip+venv 或 紫外线 --两者都工作。
故障排除
OPENROUTER_API_KEY缺失 --确保.env存在于项目根目录中并已加载(脚本使用python-dotenv).- 工具返回“未配置API密钥” --在中设置相应的密钥
.env并重新启动。 - 安装时生成错误 --切换到Python 3.12;一些依赖项还不支持3.14。
许可证
麻省理工学院——您可以自由使用、修改和构建它。
