Deepseek+MCP 实现多平台数据批量采集
主要流程说明:
- 初始化阶段 :
- 创建 Host 类实例
- 发现并注册 MCP 服务器的能力(浏览器操作功能)
- 数据提取流程 :
- extract_data 函数是主要入口点
- 创建 Host 实例并处理用户指令
- 构建系统提示和上下文
- 发送给 LLM 进行规划和执行
- LLM 交互循环 :
- 管理上下文窗口大小,防止 token 超限
- 调用 LLM API 获取响应
- 解析 LLM 响应,识别工具调用
- 执行工具(浏览器操作)
- 将结果添加到上下文并再次发送给 LLM
- 公告爬取流程 :
- scrape_announcements 函数爬取招标公告
- 调用 extract_data 获取公告列表
- 解析 JSON 数据并筛选前一日公告
- 遍历公告列表,提取详情
- 获取 HTML 内容和附件链接
- 下载附件并上传到 MinIO
- 保存数据到 CSV
- 文件下载流程 :
- 处理 cookies 和请求参数
- 发送 HEAD 请求获取文件信息
- 提取文件名并确保包含扩展名
- 根据服务器支持选择多线程或单线程下载
- 返回本地文件名
- HTML 获取流程 :
- 使用 Playwright 启动浏览器
- 访问 URL 并等待页面加载
- 清理页面元素(删除脚本、样式等)
- 获取 HTML 内容和 Cookies
- 关闭浏览器并返回结果
通过 LLM 的智能规划和浏览器自动化技术,实现了灵活的网页数据爬取功能,特别适合于结构复杂、需要交互操作的网站。
运行结果截图
数据入库
后续待解决问题
LLM实现动态网站翻页LLM实现json解析,上下文context过长问题部分附件下载需要验证码或者cookie