快速开始
Aneiang.Pa 是一个极简、声明式的 .NET 爬虫库。一行代码抓数据,一份 YAML 扩平台。
环境要求
| 要求 | 版本 |
|---|---|
| .NET 运行时 | .NET Core 3.0+ / .NET 5/6/7/8/9 |
| 目标框架 | netstandard2.1 或 net8.0 |
| OS | Windows / Linux / macOS |
不支持 .NET Framework。
安装
# 主包:核心引擎 + 20 个内置平台(单包搞定 90% 用户)
dotnet add package Aneiang.Pa
# Web API 集成(可选)
dotnet add package Aneiang.Pa.AspNetCore
# HTTP 强类型客户端 SDK(可选)
dotnet add package Aneiang.Pa.Client
包说明
| 包 | 说明 |
|---|---|
Aneiang.Pa | 核心引擎 + 20 内置 Recipe + 8 中间件 + 4 解析器 |
Aneiang.Pa.AspNetCore | app.MapPaApi() 一行起 REST API |
Aneiang.Pa.Client | HTTP 强类型客户端,调用远程 Pa API 服务 |
Aneiang.Pa.Abstractions | 接口与模型(写扩展包时引用) |
第一个示例
using Aneiang.Pa;
var data = await Pa.Source("BaiDu").GetAsync();
foreach (var item in data.Data)
Console.WriteLine(item["title"]);
完事。Pa.Source(name).GetAsync() 内部已经处理了:
- HttpClient 创建和超时控制
- UA 轮换
- 3 次指数退避重试
- 5 分钟内存缓存
- 连续失败熔断 60 秒
- 结构化日志
- Prometheus 指标
- OpenTelemetry 追踪
全部默认启用,零配置。
内置 20 个平台
foreach (var r in Pa.Sources())
Console.WriteLine($"[{r.Category}] {r.Name} — {r.DisplayName}");
输出:
[News] BaiDu 百度热榜
[News] Bilibili B 站热搜
[News] DouYin 抖音热搜
[News] Github.Releases GitHub Releases (dotnet/runtime)
[News] Github.Trending GitHub Trending
[News] WeiBo 微博热搜
[News] ZhiHu 知乎热榜
... 共 20 个
| 分类 | Source | 描述 |
|---|---|---|
| 新闻热榜 | WeiBo ZhiHu Bilibili BaiDu DouYin TouTiao | 微博 / 知乎 / B站 / 百度 / 抖音 / 头条 |
HuPu Tencent JueJin ThePaper DouBan IFeng | 虎扑 / 腾讯 / 掘金 / 澎湃 / 豆瓣 / 凤凰网 | |
Csdn CnBlog ItHome _36kr | CSDN / 博客园 / IT之家 / 36氪 | |
| GitHub | Github.Trending Github.Releases | GitHub Trending / dotnet/runtime Releases |
| 彩票 | Lottery.SSQ Lottery.DLT | 双色球 / 大乐透 |
下一步
- 基础用法 — 了解
GetAsync()的返回结构和选项 - 强类型映射 — 用 C# 类映射抓取结果
- 自定义 Recipe — 用 YAML 新增平台,0 行 C# 代码