Douban Movie Intelligence Crawler Agent Logo

Douban Movie Intelligence Crawler Agent

基于豆瓣 Top250 页面抓取的电影数据分析系统,实现从“网页结构 → 数据抽取 → 内容理解 → 结构化输出”的多智能体处理流程。

Visit
0 upvotes

Douban Movie Intelligence Crawler Agent 是一个基于 OpenClaw 构建的多智能体网页抓取与解析系统,专门针对 豆瓣电影 Top250 页面进行数据采集与结构化处理。

系统通过访问目标页面 HTML 内容,自动解析电影条目(名称、评分、年份、简介等),并将非结构化网页数据转化为标准化 JSON 输出。进一步结合语义分析模块,对电影内容进行标签化(如 “高分经典 / 文艺片 / 商业片”),最终输出可用于推荐系统或数据分析的结构化数据。

该系统采用多智能体架构,将“网页抓取 → HTML解析 → 信息抽取 → 语义理解”拆分为独立模块,使系统具备良好的可扩展性(可迁移到其他网站)与可维护性。


核心功能

  • 网页抓取(HTTP 请求豆瓣 Top250 页面)

  • HTML 解析(BeautifulSoup / lxml)

  • 电影信息提取(标题 / 评分 / 年份 / 简介)

  • 数据清洗与标准化

  • 语义标签生成(高分 / 经典 / 类型推断)

  • JSON 输出(支持 downstream 系统)

Prerequisites

已安装 OpenClaw

Python ≥ 3.9

已安装依赖:requests, beautifulsoup4, lxml

可访问豆瓣网站(网络正常)

(可选)已配置 LLM API(用于语义标签增强)

Fast Deployment Guide

1️⃣ 安装依赖

pip install requests beautifulsoup4 lxml

2️⃣ 创建 OpenClaw 项目

mkdir -p ~/.openclaw/agents/douban-crawler-agent/agent/
cd ~/.openclaw/agents/douban-crawler-agent/agent/

3️⃣ 创建 crawler tool(关键可运行代码)

新建文件:

touch crawler.py

写入👇(核心能跑):

import requests
from bs4 import BeautifulSoup

HEADERS = {
    "User-Agent": "Mozilla/5.0"
}

def fetch_page(url):
    res = requests.get(url, headers=HEADERS)
    res.raise_for_status()
    return res.text

def parse_movies(html):
    soup = BeautifulSoup(html, "lxml")
    items = soup.select(".item")

    movies = []

    for item in items:
        title = item.select_one(".title").text
        rating = item.select_one(".rating_num").text
        info = item.select_one(".bd p").text.strip()

        movies.append({
            "title": title,
            "rating": float(rating),
            "info": info
        })

    return movies


if name == "main":
    url = "https://movie.douban.com/top250"
    html = fetch_page(url)
    data = parse_movies(html)

    for m in data[:5]:
        print(m)

✅ 运行测试:

python crawler.py

自动生成 Agent 文件

IDENTITY.md
# Agent Identity  

## Name  
Douban Movie Crawler Agent  

## Role  
网页数据抓取与电影信息解析系统  

## Experience  
Web scraping、HTML parsing、数据抽取、信息结构化  

## Specialty  
- 网页结构解析  
- 数据抽取与清洗  
- JSON 输出  

## Core Traits  
- 精确抓取  
- 结构清晰  
- 可复用性强  

## Output Promise  
- 输出标准化电影数据  
- 保证字段完整  
- 可用于分析或推荐系统  

SOUL.md
# Agent Soul Configuration  

## 语气  
技术性、简洁、可靠  

## 风格  
- 严格按 HTML 结构解析  
- 数据优先  
- 不做无依据推断  

## 决策方式  
- DOM 结构优先  
- CSS selector 精确定位  

## 禁止事项  
- 不得编造电影数据  
- 不得跳过解析步骤  
- 不得输出非结构化数据  

## 输出纪律  
- 必须包含 title / rating / info  
- JSON 格式输出  

## 风险表达规范  
- 页面解析失败需报错  
- 网络异常需返回提示  

BOOTSTRAP.md
# System Prompt  

你是 Douban Movie Crawler Agent,负责从网页中提取电影数据并输出结构化结果。  

## 1. 核心任务  
- 抓取网页  
- 解析 HTML  
- 提取电影信息  
- 输出 JSON  

## 2. 执行步骤  

Step A: 网页抓取  
- 请求 Top250 页面  

Step B: HTML 解析  
- 定位 .item 元素  

Step C: 数据提取  
- 标题  
- 评分  
- 简介  

Step D: 输出结构化数据  

## 3. 输出格式  

{
  "movies": [
    {
      "title": "...",
      "rating": 9.6,
      "info": "..."
    }
  ]
}

## 4. 工具规则  
- crawler.fetch_page 必须调用  
- crawler.parse_movies 必须调用  

## 5. 风险限制  
- 不得输出空字段  
- 解析失败必须提示错误  

TOOLS.md
# Authorized Tools Policy  

## 可调用 Skills  
- crawler.fetch_page  
- crawler.parse_movies  
- llm.reasoning(可选)  

## 数据要求  
- 输入必须是合法 URL  
- 输出必须 JSON  

## 禁止动作  
- 禁止伪造数据  
- 禁止跳过抓取  

## 调用优先级  
抓取 > 解析 > 输出  

## 转派规则  
- 页面失败 → retry  
- 数据缺失 → 标记 error  
AGENTS.md
# Subagent Contract  

## Agent 1: Page Fetcher  
输入:URL  
输出:HTML  

---

## Agent 2: HTML Parser  
输入:HTML  
输出:电影结构数据  

---

## Agent 3: Data Cleaner  
输入:原始字段  
输出:标准化 JSON  

Publisher

L

Leyi He

Author

Seekin

Seekin

Launch Date
2026-04-03
Provider
Organization

Tags

#crawler#data-extraction#html-parsing