Craw4AI:LLM友好的网页爬虫

GitHubhttps://github.com/unclecode/crawl4ai

更多AI开源软件发现分享好用的AI工具、AI开源软件、AI模型、AI变现 - 小众AI

Crawl4AI旨在让网页爬取和数据提取变得简单而高效。无论构建复杂的 AI 应用程序还是增强大语言模型,Crawl4AI 都能提供简化工作流程所需的工具。凭借完全的异步支持,Crawl4AI 可确保爬取任务快速、可靠且可扩展。

主要功能

  • 📝 Markdown 生成

    • 🧹 Clean Markdown:生成具有准确格式的干净、结构化的 Markdown。
    • 🎯 Fit Markdown:基于启发式的过滤,去除噪声和不相关的部分,实现 AI 友好的处理。
    • 🔗 引文和参考文献:将页面链接转换为带有清晰引文的编号参考文献列表。
    • 🛠️ 自定义策略:用户可以根据特定需求创建自己的 Markdown 生成策略。
    • 📚 BM25 算法:采用基于 BM25 的过滤来提取核心信息和删除不相关的内容。
  • 📊 结构化数据提取

    • 🤖 LLM 驱动的提取:支持所有 LLM(开源和专有)进行结构化数据提取。
    • 🧱 分块策略:为目标内容处理实施分块(基于主题、正则表达式、句子级别)。
    • 🌌 余弦相似度:根据用户查询查找相关内容块以进行语义提取。
    • 🔎 基于 CSS 的提取:使用 XPath 和 CSS 选择器快速提取基于架构的数据。
    • 🔧 Schema Definition:定义用于从重复模式中提取结构化 JSON 的自定义 Schema。
  • 🌐 浏览器集成

    • 🖥️ Managed Browser:使用具有完全控制权的用户拥有的浏览器,避免机器人检测。
    • 🔄 远程浏览器控制:连接到 Chrome 开发者工具协议以进行远程大规模数据提取。
    • 👤 Browser Profiler:使用保存的身份验证状态、Cookie 和设置创建和管理持久性配置文件。
    • 🔒 会话管理:保留浏览器状态并将其重新用于多步骤爬网。
    • 🧩 代理支持: 通
### Craw4ai 爬虫实战教程与案例 Craw4ai 是一款开源的 LLM 友好网页爬虫与抓取工具,适用于多种场景下的数据提取任务。以下是一个关于如何使用 Craw4ai 进行网页抓取的实战教程和示例代码。 #### 1. 安装 Craw4ai 首先需要安装 Craw4ai 工具。可以通过以下命令克隆项目并安装依赖: ```bash git clone https://gitcode.com/gh_mirrors/craw/crawl4ai cd crawl4ai pip install -r requirements.txt ``` 此步骤确保了所有必要的库和依赖项被正确安装[^1]。 #### 2. 配置爬虫参数 在使用 Craw4ai 抓取网页之前,需要配置一些基本参数。例如目标网站的 URL、是否抓取子页面、输出格式等。这些参数通常通过 JSON 文件或命令行传递。 以下是一个简单的配置文件示例(`config.json`): ```json { "start_url": "https://example.com", "crawl_depth": 2, "output_format": "markdown", "include_subpages": true, "error_log": "errors.log" } ``` - `start_url`: 指定爬取的起始 URL。 - `crawl_depth`: 设置爬取深度,值为 2 表示抓取起始页面及其所有子页面。 - `output_format`: 输出格式,支持 Markdown 和 JSON。 - `include_subpages`: 是否抓取子页面内容。 - `error_log`: 错误日志文件路径。 #### 3. 示例代码:运行 Craw4ai 以下是一个简单的 Python 脚本,用于启动 Craw4ai 并执行网页抓取任务: ```python import subprocess # 定义配置文件路径 config_file = "config.json" # 使用 subprocess 调用 Craw4ai 命令 subprocess.run(["python", "crawl4ai.py", "--config", config_file]) ``` 此脚本会根据配置文件中的参数启动爬虫,并将结果保存为指定格式的文件[^1]。 #### 4. 处理动态网页 如果目标网站包含大量由 JavaScript 动态生成的内容,可以结合 FireCrawl 的功能来增强抓取能力。FireCrawl 提供了对动态网页的强大支持,并能够自动处理复杂的交互逻辑[^2]。 以下是一个结合 FireCrawl 的示例配置: ```json { "start_url": "https://dynamic-example.com", "use_firecrawl": true, "javascript_enabled": true, "output_format": "markdown", "map_endpoints": true } ``` - `use_firecrawl`: 启用 FireCrawl 扩展功能。 - `javascript_enabled`: 开启 JavaScript 支持。 - `map_endpoints`: 使用 `/map` 端点快速收集相关链接。 #### 5. 输出结果 抓取完成后,Craw4ai 会将结果保存为指定格式的文件。例如,如果输出格式为 Markdown,则生成的文件可能类似于以下内容: ```markdown # Example Page Title This is the content of the example page. ## Subpage 1 Content of subpage 1. ## Subpage 2 Content of subpage 2. ``` 此外,还可以通过 SDK 接口直接访问抓取的数据,支持多种编程语言,如 Go 和 Rust。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值