2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

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

发布日期:2025-01-17 08:39:35 浏览次数: 3250
作者:有趣的开源集市

微信搜一搜,关注“有趣的开源集市”


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


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


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

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


01 Crawl4AI 介绍
— 

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


?  项目信息

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

?功能特性

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

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

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

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

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

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

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

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


02 Crawl4AI 安装

  • 使用 pip 安装

Crawl4AI 可以作为 Python 包直接通过 pip 安装:

pip install crawl4ai

安装完成后验证:

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())


  • 使用 Docker 安装

Crawl4AI 也支持 Docker 安装:

#拉取 Docker 镜像(适用于X86架构):docker pull unclecode/crawl4ai:basic-amd64#运行 Docker 容器:其中your_secret_token为自定义tokendocker run -p 11235:11235 -e CRAWL4AI_API_TOKEN=your_secret_token unclecode/crawl4ai:basic-amd64
安装完成后验证(API访问):import requests# Submit a crawl jobresponse = requests.post("http://localhost:11235/crawl",json={"urls": "https://example.com", "priority": 10})task_id = response.json()["task_id"]# Continue polling until the task is complete (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 处理的格式,助力轻松获取高质量数据!


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅