为大模型定制的网络爬取工具Crawl4AI简介

大语言模型若想实现语境化推理(即上下文学习),离不开高质量且富含上下文信息的数据支撑,这是其完成问题回答、内容生成以及驱动AI 代理等各类任务的重要基石。

高效的数据传递机制犹如大语言模型的 信息高速路 ,能确保模型在恰当的时机获取精准信息,而这直接关乎其响应的准确性与实用性。数据传递的速度快慢、质量优劣以及结构化程度高低,都对大语言模型输出的实际应用价值起着决定性作用。无论是实时洞察市场动态、精准提炼新闻摘要、准确预报天气,还是深度整合专业领域知识,皆依赖于此。

Crawl4AI 作为一款专为大语言模型量身打造的开源网页爬取工具,具备强大的数据提取能力,可高效地从网页中抓取数据,并将其转化为JSON 、规范化HTML Markdown 等结构化格式。这一独特优势,使其成为那些需要持续获取最新数据,同时又不想依赖复杂集成方案的应用场景的不二之选。

7.1.1   大模型传递数据的方式

在我们使用大模型对数据进行分析和解答时,一个必须做的内容就是数据的准备与传输,数据能够借助多种技术手段输送至大语言模型,具体方式为API 接口和数据库集成。

1. API 接口

API 接口为数据传递搭建了一座桥梁,它能够将结构化数据精准地输送给大语言模型。不过,这座桥梁并非毫无限制,服务提供商所设定的功能约束以及计费限制,就如同桥梁上的栏杆和收费站,在一定程度上规范着数据的流通。例如,某些API 接口可能仅支持特定格式的数据传输,或者对数据传输的频率和数量设置了上限,这都需要在使用时加以考虑。

2. 数据库集成

数据库集成适用于那些预先收集好的静态数据集。它就像是一个稳定的仓库,将已有的数据妥善存放,并在需要时提供给大语言模型。然而,当面对动态变化的信息时,这个仓库就显得有些力不从心了。它缺乏足够的灵活性,难以实时捕捉和处理数据的更新和变化,就像一个只能存放固定物品的仓库,无法适应新物品的随时进出。

1 )网页爬取技术

网页爬取技术犹如一位灵活的探险家,能够在网络的海洋中自主导航。以Crawl4AI 为例,它能够

巧妙地穿梭于网站的结构之间,从目标URL 及其子页面中精准地提取实时数据,而无须依赖预设的API 。这种自主性使得网页爬取技术在数据获取方面具有独特的优势,它不受API 接口的限制,能够获取到更广泛、更丰富的数据资源。

2 )文档解析

文档解析则专注于处理离线数据。无论是PDF CSV 还是纯文本文件,它都能像一位细心的工匠一样,将这些文件中的数据进行结构化提取。通过对文档内容的分析和整理,将原本杂乱无章的数据转化为有序、可用的信息,为大语言模型提供有价值的输入。

在众多的数据传递技术中,网页爬取技术因其适应性强和实现成本低而脱颖而出,尤其适合那些无须复杂编程基础的AI 代理应用场景。它就像是一把钥匙,能够打开各种网页数据的大门,让AI 代理轻松获取所需信息。

7.1.2   服务于大模型的Crawl4AI

Crawl4AI 作为网页爬取技术的典型代表,采用了基于浏览器的导航方式(借助Playwright 框架)或轻量级HTTP 请求机制来访问公开网页内容。它不仅能够模拟人类的交互行为,还能有效应对CAPTCHA 验证或动态页面渲染等技术障碍。这就好比一位聪明的黑客,能够巧妙地绕过各种安全防线,获取到网页中的真实数据。通过这种方式,Crawl4AI 为大语言模型提供了实时数据源,支持即时分析或检索增强生成(RAG )等高级应用场景,让大语言模型能够在第一时间获取最新的信息,并做出准确的回应。

Crawl4AI 凭借其卓越的异步架构设计和内存自适应调度系统,展现出强大的并发处理能力。它能够有条不紊地高效管理数千个URL 的并发处理任务,就像一位经验丰富的指挥官,精准地调配着每一支 数据小队 ,确保系统吞吐量达到最大化。这种出色的管理能力,使得Crawl4AI 在数据采集的战场上能够迅速且稳定地获取大量信息,为后续的数据处理和分析奠定了坚实基础。Crawl4AI 网络采集工具宣传页如图7-1 所示。    

        

  7-1  Crawl4AI 网络采集工具

在爬取策略方面,Crawl4AI 犹如一位智慧的探险家,提供了深度优先搜索(Depth-First Search DFS )或广度优先搜索(Breadth First Search BFS )的网站遍历模式。这两种模式就像不同的探索路径,能够帮助系统全面获取网站中的各类数据。而基于LXML 的轻量级解析方案,则如同高效的翻译工具,能够快速将获取到的数据转化为可用的格式,大大提升了处理速度,实现了资源利用与输出质量的最优平衡。内置的代理轮换功能更是巧妙地规避了访问频率限制,让Crawl4AI 能够在全球范围内自由收集数据,不受地域和访问规则的限制。

这些技术特性相互协作,形成了一个强大的数据采集生态系统,确保大语言模型能够随着应用需求的增长持续获取高质量数据。无论是单一聊天机器人需要实时获取最新的资讯信息,还是复杂AI 代理网络需要处理海量的多源数据,Crawl4AI 都能轻松应对,适用于各类应用场景。

除数据传递外,大语言模型还需要精心设计的数据预处理管道,就如同烹饪美食需要精心准备食材和烹饪流程一样。

数据源发现是构建有效数据管道的首要环节。Crawl4AI 实现了基于自然语言查询的智能爬虫功能,这一功能就像是一个智能的搜索助手,允许用户通过简单的问题描述自动定位相关网页内容。用户无须具备专业的编程知识,只需用自然语言表达自己的需求,Crawl4AI 就能迅速找到所需的数据来源,大大降低了数据获取的门槛。

数据结构设计对于大语言模型的理解至关重要。 Crawl4AI 采用启发式 Markdown 生成算法和重叠文本分块技术,这些技术就像是精妙的拼图工具,能够有效保留上下文连贯性,提升输出质量。通过合理的结构设计,让数据以更加清晰、有序的方式呈现给大语言模型,使其能够更好地理解和处理数据。

管道开发需要适应性强的工具支持。Crawl4AI 提供的命令行界面和编程接口简化了从原型设计到生产部署的全流程,实现与AI 工作流的无缝集成。开发者可以像搭积木一样,轻松地组合和调用各种功能模块,快速搭建出符合自己需求的数据预处理管道。无论是进行小规模的实验,还是进行大规模的生产部署,Crawl4AI 都能提供便捷、高效的工具支持。

数据来源的多样性也是Crawl4AI 的一大亮点。它涵盖了社交媒体、新闻网站、专业论坛和电子商务平台等多个领域。同时,Crawl4AI PDF 文档、图像内容和iframe 嵌入式资源的处理能力,确保大语言模型不仅限于纯文本信息。这就像是为大语言模型打开了一扇通往多元知识世界的大门,丰富了其知识库的维度和深度,使其能够更加全面、深入地理解和处理各种信息。通过对这些多源数据的整合和分析,大语言模型能够生成更加准确、丰富的回答,为用户提供更加优质的服务。

7.1.3  Crawl4AI 的安装与基本使用

Crawl4AI 的安装比较简单,在终端执行如下命令:

pip install Crawl4AI

等待安装完成后,我们需要运行安装后的配置程序。在运行配置程序之前,读者需要注意完成第5 Agent 的学习与配置。配置Crawl4AI 的代码如下所示:

crawl4ai-setup

运行后的结果如图7-2 所示。

7-2  配置Crawl4AI

接下来需要验证Crawl4AI 的安装结果,我们可以使用如下命令:

crawl4ai-doctor

此时命令执行结果如图7-3 所示。

7-3  验证Crawl4AI 安装

当看到 Crawling test passed! 提示信息 ,即表明Crawl4AI 安装完毕。

下面我们举一个简单的例子,使用Crawl4AI 来爬取新浪财经的内容,代码如下所示:

import asyncio
from crawl4ai import *
 
async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://finance.sina.com.cn/",
        )
        print(result.markdown)
 
if __name__ == "__main__":
     asyncio.run(main())

上面代码运行后,可以看到 Crawl4AI 已经完整地获取了新浪财经的内容,读者可以仔细尝试。

本文节选自《DeepSeek原生应用与智能体开发实践》一书,获出版社和作者授权发布,仅供读者个人学习使用。




请使用浏览器的分享功能分享到微信等