返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

一款超级给力的网页内容获取工具,私有化部署,和RAG更搭配,Start 22K!

[复制链接]
链载Ai 显示全部楼层 发表于 前天 17:02 |阅读模式 打印 上一主题 下一主题


如果用过网页获取工具的同学应该就会发现,传统的工具在处理大规模数据和动态网页时性能不足,无法高效加载和提取 JavaScript 动态生成的内容,导致数据抓取速度慢且不完整。而以前我们也介绍过一个能够将网页内容转换成适合大型语言模型(LLMs)处理的格式的工具-Reader


  • 一条命令能够将网页内容转换成适合任何大模型处理的格式,AI时代的检索增强,Star 6.6K!


但是Reader是个在线工具,提供的是SaaS服务,那么也就意味着需要联网使用,而且也有相应的调用限制。

所以,很多时候我们需要一个完全不限制使用,同时还能能够提取网页中的各种元素,包括文本、媒体文件(图片、视频、音频)、内外部链接和元数据的工具,而今天介绍的就是一个不输Reader,但是还能私有化部署的工具-Crawl4AI


01Crawl4AI 介绍

从名称就能看出,Crawl4AI 一款专为大型语言模型(LLM)优化的开源网页爬虫工具,它通过异步架构和 Playwright 多浏览器支持实现了极速的爬取性能,能够高效地加载和提取动态内容。其高度定制化的功能允许用户根据具体需求灵活调整爬取策略,支持多种数据提取方式,如基于主题、正则表达式和句子等。生成的数据格式适合直接用于 AI 模型的训练和处理,减少了数据转换的复杂性。


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-wrap: wrap;background-color: rgb(255, 255, 255);color: rgb(62, 62, 62);font-size: 16px;text-align: left;visibility: visible;">?项目信息

#github地址https://github.com/unclecode/crawl4ai#项目地址https://crawl4ai.com/mkdocs/

?ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;visibility: visible;">功能特性

  • 异步架构:采用异步编程技术,能够高效地同时处理多个网页请求,显著提高爬虫的效率和性能。

  • 多格式输出:支持多种数据格式输出,包括 JSON、HTML 和 Markdown,方便与 AI 模型和其他数据处理工具集成。

  • 全方位数据提取:能够提取网页中的文本、图片、视频、音频等多媒体数据,以及所有外部和内部链接和元数据。

  • 高度定制化:提供自定义用户代理、请求头和页面修改的钩子功能,用户可以根据具体需求灵活设置爬虫行为。

  • 多浏览器支持:兼容 Chromium、Firefox 和 WebKit 等多种浏览器,能够更好地模拟真实用户的浏览行为。

  • 动态内容处理:支持执行自定义 JavaScript 脚本,能够处理动态加载的内容,确保全面的数据抓取。

  • 会话管理:适用于复杂的多页面爬取场景,能够保持会话状态,实现多步骤的爬取任务。

  • 高级提取策略:支持基于主题、正则表达式、句子等的分块策略,以及利用 LLM 或余弦聚类的高级提取策略,提高数据提取的准确性和效率。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-wrap: wrap;background-color: rgb(255, 255, 255);min-height: 1em;text-align: center;line-height: 1.6em;">

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-wrap: wrap;background-color: rgb(255, 255, 255);min-height: 1em;text-align: center;line-height: 1.6em;">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;letter-spacing: 0.544px;text-align: center;outline: 0px;visibility: visible;">02Crawl4AI 安装

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-wrap: wrap;background-color: rgb(255, 255, 255);min-height: 1em;text-align: center;line-height: 1.6em;">

  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);min-height: 1em;text-align: left;line-height: 1.6em;max-width: 100%;box-sizing: border-box;white-space: normal;overflow-wrap: break-word !important;">使用 pip 安装

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);min-height: 1em;text-align: left;line-height: 1.6em;max-width: 100%;box-sizing: border-box;white-space: normal;overflow-wrap: break-word !important;">Crawl4AI 可以作为 Python 包直接通过 pip 安装:

pipinstallcrawl4ai

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);min-height: 1em;text-align: left;line-height: 1.6em;max-width: 100%;box-sizing: border-box;white-space: normal;overflow-wrap: break-word !important;">安装完成后验证:

import asynciofrom crawl4ai import *
async def main():async with AsyncWebCrawler() as crawler:result = await crawler.arun(url="https://www.nbcnews.com/business",)print(result.markdown)
if __name__ == "__main__":asyncio.run(main())


  • ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);min-height: 1em;text-align: left;line-height: 1.6em;max-width: 100%;box-sizing: border-box;white-space: normal;overflow-wrap: break-word !important;">

    使用 Docker 安装

Crawl4AI 也支持 Docker 安装:

#拉取Docker镜像(适用于X86架构):dockerpullunclecode/crawl4ai:basic-amd64#运行Docker容器:其中your_secret_token为自定义tokendockerrun-p11235:11235-eCRAWL4AI_API_TOKEN=your_secret_tokenunclecode/crawl4ai:basic-amd64
安装完成后验证(API访问):importrequests#Submitacrawljobresponse=requests.post("http://localhost:11235/crawl",json={"urls":"https://example.com","priority":10})task_id=response.json()["task_id"]#Continuepollinguntilthetaskiscomplete(status="completed")result=requests.get(f"http://localhost:11235/task/{task_id}")


  • 1Panel安装

如果觉得上面部署都比较麻烦,那么可以在1Panel中采用图形化安装:


02 在RAG中使用

RAG系统我们以MaxKB为例,具体的MaxKB安装和使用可参考以前的文章:


  • 一个小白也能玩的转的大模型知识库问答系统 ,一键部署、开箱即用,Star 7.1K!
  • 一个可替换 Google,Bing 的 AI 网络搜索引擎,为企业 RAG 插上想象的翅膀!
  • 一个采用 NVIDIA GPU + Xinference + MaxKB搭建企业级、私有化、高性能智能知识库问答系统的开源方案!
  • 一个利用开源 RAG ,基于企业内部知识文档生成万字长文的实践!


本文以Docker部署的Crawl4AI 为例进行说明。我们需要现在MaxKB的函数库中添加Crawl4AI 函数:

具体的Python函数代码如下,需要的同学复制粘贴,修改自行部署的Crawl4AI 地址即可:

def search_url(query):"""使用 Crawl4AI API 进行网页爬取并返回 Markdown 格式的结果。
参数:query (str): 要爬取的网页 URL。
返回:str: 爬取结果的 Markdown 格式文本。"""import requestsimport timefrom typing import Dict, Any
# 设置 API 令牌,用于 API 认证api_token="xxxxxxxxxxx"#与CRAWL4AI_API_TOKEN设置的令牌相同# 如果设置了 API 令牌,则在请求头中添加认证信息headers = {"Authorization": f"Bearer {api_token}"} if api_token else {}
# 提交一个爬取任务response = requests.post("http://xxx.xxx.xxx.xxx:11235/crawl",# Crawl4AI API 的爬取端点headers=headers,json={"urls": query, "priority": 10}# 提交爬取请求,包含要爬取的 URL 和优先级)# 获取任务 IDtask_id = response.json()["task_id"]print(task_id)# 打印任务 ID,用于跟踪爬取任务
# 持续轮询直到任务完成(状态为 "completed")while True:# 获取任务状态result = requests.get(f"http://xxx.xxx.xxx.xxx:11235/task/{task_id}", headers=headers)status = result.json().get("status")if status == "completed":# 如果任务已完成print(status)# 打印任务状态break# 退出轮询循环time.sleep(1)# 如果任务未完成,等待 1 秒后再次检查
# 获取最终的爬取结果result = result.json()# 返回爬取结果的 Markdown 格式文本return result['result']['markdown']

在MaxKB的高级应用的编排使用,将获取的内容进行优化展示。

原文链接:
https://baijiahao.baidu.com/s?id=1747834446138459260&wfr=spider&for=pc

原文内容:


Crawl4AI 获取的内容:


MaxKB总结展示内容:


04 最后
由此可见,Crawl4AI 是一款专为LLM 应用打造的开源异步网页爬虫工具,凭借其卓越的性能和高度的灵活性,能够高效地抓取动态网页数据,生成适合LLM 处理的格式,助力轻松获取高质量数据!


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ