You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.0 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# @lobechat/web-crawler
LobeChat 内置的网页抓取模块,用于智能提取网页内容并转换为 Markdown 格式。
## 📝 简介
`@lobechat/web-crawler` 是 LobeChat 的核心组件,负责网页内容的智能抓取与处理。它能够从各类网页中提取有价值的内容,过滤掉干扰元素,并生成结构化的 Markdown 文本。
## 🛠️ 核心功能
- **智能内容提取**:基于 Mozilla Readability 算法识别主要内容
- **多级抓取策略**支持多种抓取实现包括基础抓取、Jina 和 Browserless 渲染抓取
- **自定义 URL 规则**:通过灵活的规则系统处理特定网站的抓取逻辑
## 🤝 参与共建
网页结构多样复杂,我们欢迎社区贡献特定网站的抓取规则。您可以通过以下方式参与改进:
### 如何贡献 URL 规则
1. 在 [urlRules.ts](https://github.com/lobehub/lobe-chat/blob/main/packages/web-crawler/src/urlRules.ts) 文件中添加新规则
2. 规则示例:
```typescript
// 示例:处理特定网站
const url = [
// ... 其他 url 匹配规则
{
// URL 匹配模式,仅支持正则表达式
urlPattern: 'https://example.com/articles/(.*)',
// 可选URL 转换,用于重定向到更易抓取的版本
urlTransform: 'https://example.com/print/$1',
// 可选:指定抓取实现方式,支持 'naive'、'jina' 和 'browserless' 三种
impls: ['naive', 'jina', 'browserless'],
// 可选:内容过滤配置
filterOptions: {
// 是否启用 Readability 算法,用于过滤干扰元素
enableReadability: true,
// 是否转换为纯文本
pureText: false,
},
},
];
```
### 规则提交流程
1. Fork [LobeChat 仓库](https://github.com/lobehub/lobe-chat)
2. 添加或修改 URL 规则
3. 提交 Pull Request 并描述:
- 目标网站特点
- 规则解决的问题
- 测试用例(示例 URL
## 📌 注意事项
这是 LobeHub 的内部模块(`"private": true`),专为 LobeChat 设计,不作为独立包发布使用。