项目介绍:Markdown-Crawler
Markdown-Crawler 是由 Paul Pierre 开发的一个多线程网页爬虫工具,其主要功能是递归抓取网站页面并为每个页面生成 Markdown 文件。这一工具的设计初衷是为了简化大语言模型文档解析,将大型文档进行分块处理,以便在 RAG(检索增强生成)场景中使用。
主要功能
- 多线程支持: 提供线程并行处理能力,加速抓取过程。
- 断点续爬: 可以从上一次中断的地方继续进行抓取。
- 最大深度设置: 用户可以设置需要抓取的页面子节点的最大深度。
- 支持表格和图片等元素: 能够抓取网页中的表格、图片等元素,并写入 Markdown。
- 网址验证: 能验证 URL、HTML 和文件路径的有效性。
- 配置基本路径或域: 用户可以配置有效的基本路径或者基本域名列表。
- HTML 解析: 使用 BeautifulSoup 来解析 HTML 内容。
- 详细日志记录: 提供详细日志选项,以便于调试和监控。
- 即用型命令行界面(CLI): 提供开箱即用的命令行界面以便于操作。
适用场景
- RAG: 用于标准化大型文档,并按标题、段落或句子进行分块。
- LLM 微调: 可以创建一个大型的 Markdown 文件语料库,作为微调
gpt-3.5-turbo
或者Mistral-7B
的第一步。 - 代理知识重建: 结合 Microsoft 的 autogen,将此工具用于专家代理的知识重建,例如重新构建一款电子游戏或电影的知识语料库。
- 代理/LLM工具: 用于在线 RAG 学习,让聊天机器人持续学习,通过 SERP 抓取和索引 Markdown-Crawler 的前 N 个结果。
- 更多应用: 广泛适用于多种需要网页解析和处理的场合。
快速开始
用户可以通过命令行界面快速开始使用 Markdown-Crawler。
安装包文件:
pip install markdown-crawler
运行命令行:
markdown-crawler -t 5 -d 3 -b ./markdown https://en.wikipedia.org/wiki/Morty_Smith
在代码中使用:
from markdown_crawler import md_crawl
url = 'https://en.wikipedia.org/wiki/Morty_Smith'
md_crawl(url, max_depth=3, num_threads=5, base_path='markdown')
安装要求
- Python 3.x
- BeautifulSoup4
- requests
- markdownify
用法及示例
Markdown-Crawler 支持多种命令行参数,用户可以通过调整诸如 max_depth
(最大深度)、num_threads
(线程数量)、base_path
(基本路径)等参数来灵活定制抓取行为。具体示例可以参考项目的示例代码。
结语
Markdown-Crawler 是一个强大且灵活的工具,适合需要网页内容解析及处理的用户。如果用户在使用过程中遇到问题,可以在 GitHub 提交问题或 PR,与开发者进行沟通交流。
项目采用 MIT 开源许可证,用户可以自由使用、复制和分发。
声明
Markdown-Crawler 使用了 Matthew Tretter 开发的 markdownify 工具,其原始源码可以在 这里 找到。