crawl_config.json 4.44 KB
{
  "crawl_targets": [
    {
      "name": "猫眼专业版",
      "url": "https://piaofang.maoyan.com/",
      "priority": "P0",
      "type": "static",
      "headers": {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
      },
      "rate_limit": {
        "min_interval": 3,
        "retry_times": 3,
        "timeout": 30000
      },
      "parse_rule": {
        "type": "html",
        "selector": ".movie-list .movie-item",
        "fields": ["title", "box_office", "release_date", "daily_box_office", "rank"]
      }
    },
    {
      "name": "骨朵传媒",
      "url": "https://www.guduomedia.com/ranking",
      "priority": "P0",
      "type": "static",
      "headers": {
        "User-Agent": "Mozilla/5.0"
      },
      "rate_limit": {
        "min_interval": 3,
        "retry_times": 3,
        "timeout": 30000
      },
      "parse_rule": {
        "type": "html",
        "selector": ".rank-list .item",
        "fields": ["title", "heat_index", "trend", "category", "rank"]
      }
    },
    {
      "name": "抖音热榜",
      "url": "https://www.douyin.com/aweme/v1/web/hot/search/list/",
      "priority": "P0",
      "type": "api",
      "headers": {
        "User-Agent": "Mozilla/5.0",
        "Referer": "https://www.douyin.com/"
      },
      "rate_limit": {
        "min_interval": 5,
        "retry_times": 3,
        "timeout": 30000
      },
      "parse_rule": {
        "type": "json",
        "path": "data.word_list",
        "fields": ["word", "hot_value", "rank", "event_time"]
      }
    },
    {
      "name": "蝉妈妈",
      "url": "https://www.chanmama.com/rank/douyin",
      "priority": "P1",
      "type": "static",
      "headers": {
        "User-Agent": "Mozilla/5.0"
      },
      "rate_limit": {
        "min_interval": 5,
        "retry_times": 2,
        "timeout": 30000
      },
      "parse_rule": {
        "type": "html",
        "selector": ".rank-table tbody tr",
        "fields": ["title", "author", "views", "likes", "comments"]
      }
    },
    {
      "name": "B站热门",
      "url": "https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all",
      "priority": "P1",
      "type": "api",
      "headers": {
        "User-Agent": "Mozilla/5.0",
        "Referer": "https://www.bilibili.com"
      },
      "rate_limit": {
        "min_interval": 3,
        "retry_times": 3,
        "timeout": 30000
      },
      "parse_rule": {
        "type": "json",
        "path": "data.list",
        "fields": ["title", "author", "view", "like", "coin", "favorite", "share", "rank"]
      }
    },
    {
      "name": "艺恩数据",
      "url": "https://www.endata.com.cn/BoxOffice",
      "priority": "P1",
      "type": "static",
      "headers": {
        "User-Agent": "Mozilla/5.0"
      },
      "rate_limit": {
        "min_interval": 5,
        "retry_times": 2,
        "timeout": 30000
      },
      "parse_rule": {
        "type": "html",
        "selector": ".box-office-list .item",
        "fields": ["movie_name", "total_box_office", "release_date", "days"]
      }
    },
    {
      "name": "微博热搜",
      "url": "https://weibo.com/ajax/statuses/hot",
      "priority": "P2",
      "type": "api",
      "headers": {
        "User-Agent": "Mozilla/5.0",
        "Referer": "https://weibo.com"
      },
      "rate_limit": {
        "min_interval": 10,
        "retry_times": 2,
        "timeout": 30000
      },
      "parse_rule": {
        "type": "json",
        "path": "data.realtime",
        "fields": ["word", "raw_hot", "rank", "label"]
      }
    }
  ],
  "global_config": {
    "min_interval": 2,
    "max_concurrent": 3,
    "retry_times": 3,
    "timeout": 30000,
    "user_agent_pool": [
      "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
      "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
      "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15"
    ]
  },
  "data_storage": {
    "format": "json",
    "path": "./data/",
    "filename_pattern": "{source}_{date}.json",
    "metadata": {
      "include_source": true,
      "include_url": true,
      "include_crawl_time": true,
      "include_hash": true
    }
  },
  "monitoring": {
    "enable_logging": true,
    "log_path": "./logs/crawl.log",
    "alert_on_error": true,
    "error_threshold": 10
  }
}