Status · Operational Last build · stable JDK 8+

抓取即
魔法

一个灵活、可扩展的 Java 爬虫框架。覆盖下载、URL 管理、内容抽取与持久化的完整生命周期, 几行代码,一个爬虫。

$
11.4k+
Stars
2.8k+
Forks
347+
Contributors
Apache 2.0
License
crawl · live NODES 8 · DEPTH 3 · LIVE
◉ visited ○ queued ▓ crawler FIG. 01 — spider traversal
§ 01

核心特性

Features
§ 01 Simple

简单易用

链式 API,十几行代码就能构建一个可工作的爬虫。

§ 02 Composable

高度灵活

四大组件彼此独立,任一层都可以替换、扩展与测试。

§ 03 Scale

多线程与分布式

内置线程池;切换 Redis Scheduler 即可扩展为分布式抓取。

§ 04 POJO

注解驱动

@TargetUrl、@ExtractBy 让 POJO 既是模型也是爬虫描述。

§ 05 Extract

强大提取

XPath、CSS、正则、JsonPath 可组合使用,适应复杂页面结构。

§ 06 Pipe

易于集成

结果可以流向 Console、文件、MySQL、Redis 或自定义 Pipeline。

§ 02

架构一览

Pipeline Overview
    ┌──────────┐       ┌────────────┐       ┌─────────────┐       ┌──────────┐
    │  SEEDS   │──────▶│ SCHEDULER  │──────▶│ DOWNLOADER  │──────▶│  PAGE    │
    │ urls[]   │       │ queue / dup│       │ http / proxy │       │ html dom │
    └──────────┘       └──────┬─────┘       └──────┬──────┘       └────┬─────┘
                              │                    │                    │
                              │ push new urls      │ fetch response     │ parse
                              ▼                    ▼                    ▼
                        ┌────────────┐       ┌─────────────┐      ┌────────────┐
                        │ PROCESSOR  │◀──────│ selectors   │─────▶│ result item │
                        │ user logic │       │ css/xpath   │      │ fields     │
                        └──────┬─────┘       └─────────────┘      └────┬───────┘
                               │                                        │
                               ▼                                        ▼
                        ┌────────────┐       ┌─────────────┐      ┌────────────┐
                        │  PIPELINE  │──────▶│ file/mysql  │─────▶│    done    │
                        │ custom out │       │ redis/kafka │      │ persisted  │
                        └────────────┘       └─────────────┘      └────────────┘
          
§ 03

快速开始

Quickstart
root@webmagic : ~/webmagic-demo cat pom.xml
pom.xml