百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Crawl4AI: 适合大语言模型的开源网页爬取与信息提取利器

off999 2024-12-15 16:05 54 浏览 0 评论

Crawl4AI

Crawl4AI是一款专为简化网页爬取和信息提取而设计的工具,特别适合大语言模型(LLMs)和AI应用。

无论你是通过REST API、Python 库,还是Google Colab笔记本来使用,Crawl4AI都能提供强大的功能,让网页数据提取变得更加简单和高效。你无需安装任何额外的库,就能轻松地从多个网页获取所需的信息。

Crawl4AI提供了多种使用方式:你可以直接使用官方服务器上的 REST API,也可以在本地运行服务器。

此外,Crawl4AI的Python库允许你根据具体需求自定义爬取和提取策略,提供更高级的控制。

通过Crawl4AI,你可以高效地提取网页上的文本、图片、音频、视频和链接,为你的LLMs和AI应用提供强大的数据支持。

主要功能

功能描述完全免费和开源Crawl4AI 是免费使用且开源的,任何人都可以访问。适用于 LLM 的输出格式支持 JSON、清理后的 HTML 和 markdown 格式。并发爬取可以同时爬取多个 URL,节省时间。媒体提取提取所有媒体标签,包括图片、音频和视频。链接提取从网页中提取所有外部和内部链接。元数据提取提取网页的元数据以获取更多上下文信息。自定义钩子定义自定义钩子,用于身份验证、头部信息和爬取前的页面修改。用户代理支持自定义 HTTP 请求的用户代理。截图功能在爬取过程中对网页进行截图。JavaScript 执行在爬取前执行自定义 JavaScript。高级分块和提取策略使用基于主题、正则表达式、句子分块、余弦聚类和 LLM 的提取策略。支持 CSS 选择器使用 CSS 选择器提取特定内容。指令/关键词优化传递指令或关键词以优化提取过程。

安装

使用 Crawl4AI 有三种方式:

1、作为库使用(推荐)

pip install "crawl4ai[all] @ git+https://github.com/unclecode/crawl4ai.git"

2、作为本地服务器(Docker)或使用 REST API

这个选项安装与transformer相关的依赖项并下载模型。

# 对于 Mac 用户 (M1/M2)
docker build --platform linux/amd64 --build-arg INSTALL_OPTION=transformer -t crawl4ai:transformer .

# 对于其他用户
docker build --build-arg INSTALL_OPTION=transformer -t crawl4ai:transformer .

# 运行容器
docker run -d -p 8000:80 crawl4ai:transformer

3、作为本地服务器(Docker),使用 Docker Hub 上的预构建镜像

你可以使用Docker Hub上的预构建Crawl4AI镜像,这些镜像适用于所有平台(Mac,Linux,Windows)

# 拉取镜像
docker pull unclecode/crawl4ai:latest

# 运行容器
docker run -d -p 8000:80 unclecode/crawl4ai:latest

运行容器后,你可以测试是否正常工作:

在Windows (PowerShell)上:

Invoke-WebRequest -Uri http://localhost:8000

或者打开浏览器,导航到http://localhost:8000

快速入门指南

首先,我们创建一个WebCrawler实例并调用warmup()函数。

第一次运行Crawl4AI时可能需要几秒钟,因为它需要加载所需的模型文件。

from crawl4ai import WebCrawler

def create_crawler():
    crawler = WebCrawler(verbose=True)
    crawler.warmup()
    return crawler

crawler = create_crawler()

基本用法

只需提供一个URL!

result = crawler.run(url="https://www.nbcnews.com/business")
print(f"Basic crawl result: {result}")

截图

让我们对页面进行截图!

result = crawler.run(url="https://www.nbcnews.com/business", screenshot=True)
with open("screenshot.png", "wb") as f:
    f.write(base64.b64decode(result.screenshot))
print("Screenshot saved to 'screenshot.png'!")

理解参数

默认情况下,Crawl4AI会缓存爬取结果,这意味着对相同URL的后续爬取会更快!让我们看看这个功能。

第一次爬取(缓存结果):

result = crawler.run(url="https://www.nbcnews.com/business")
print(f"First crawl result: {result}")

强制重新爬取

result = crawler.run(url="https://www.nbcnews.com/business", bypass_cache=True)
print(f"Second crawl result: {result}")

添加分块策略

让我们添加一个分块策略:RegexChunking!这个策略根据给定的正则表达式模式拆分文本。

from crawl4ai.chunking_strategy import RegexChunking

result = crawler.run(
    url="https://www.nbcnews.com/business",
    chunking_strategy=RegexChunking(patterns=["\n\n"])
)
print(f"RegexChunking result: {result}")

你还可以使用NlpSentenceChunking,它利用NLP技术将文本拆分为句子。

from crawl4ai.chunking_strategy import NlpSentenceChunking

result = crawler.run(
    url="https://www.nbcnews.com/business",
    chunking_strategy=NlpSentenceChunking()
)
print(f"NlpSentenceChunking result: {result}")

添加提取策略

让我们变得更聪明,使用提取策略:CosineStrategy!这个策略利用余弦相似度提取语义上相似的文本块。

from crawl4ai.extraction_strategy importCosineStrategy

result = crawler.run(
    url="https://www.nbcnews.com/business",
    extraction_strategy=CosineStrategy(
        word_count_threshold=10,
        max_dist=0.2,
        linkage_method="ward",
        top_k=3
)
)
print(f"CosineStrategy result: {result}")

你还可以传递其他参数,如semantic_filter,以提取特定内容。

result = crawler.run(
    url="https://www.nbcnews.com/business",
    extraction_strategy=CosineStrategy(
        semantic_filter="inflation rent prices"
    )
)
print(f"CosineStrategy result with semantic filter: {result}")

使用 LLMExtractionStrategy

这个策略利用大型语言模型从网页中提取相关信息。

from crawl4ai.extraction_strategy import LLMExtractionStrategy
import os

result = crawler.run(
    url="https://www.nbcnews.com/business",
    extraction_strategy=LLMExtractionStrategy(
        provider="openai/gpt-4o", 
        api_token=os.getenv('OPENAI_API_KEY')
    )
)
print(f"LLMExtractionStrategy (no instructions) result: {result}")

你还可以提供特定的指令来指导提取。

result = crawler.run(
    url="https://www.nbcnews.com/business",
    extraction_strategy=LLMExtractionStrategy(
        provider="openai/gpt-4o",
        api_token=os.getenv('OPENAI_API_KEY'),
        instruction="I am interested in only financial news"
    )
)
print(f"LLMExtractionStrategy (with instructions) result: {result}")

目标提取

使用CSS选择器只提取H2标签!

result = crawler.run(
    url="https://www.nbcnews.com/business",
    css_selector="h2"
)
print(f"CSS Selector (H2 tags) result: {result}")

交互提取

传递JavaScript代码点击“加载更多”按钮!

const loadMoreButton = Array.from(document.querySelectorAll('button')).find(button => button.textContent.includes('Load More'));
loadMoreButton && loadMoreButton.click();
result = crawler.run(
    url="https://www.nbcnews.com/business",
    js=js_code
)
print(f"JavaScript Code (Load More button) result: {result}")

使用爬虫钩子

import time

from crawl4ai.web_crawler importWebCrawler
from crawl4ai.crawler_strategy import*

defdelay(driver):
print("Delaying for 5 seconds...")
    time.sleep(5)
print("Resuming...")

defcreate_crawler():
    crawler_strategy =LocalSeleniumCrawlerStrategy(verbose=True)
    crawler_strategy.set_hook('after_get_url', delay)
    crawler =WebCrawler(verbose=True, crawler_strategy=crawler_strategy)
    crawler.warmup()
return crawler

crawler = create_crawler()
result = crawler.run(url="https://www.nbcnews.com/business", bypass_cache=True)

入门体验

拿之前文章做个验证。Redka = SQLite 重新实现 Redis

from crawl4ai.web_crawler import WebCrawler

crawler = WebCrawler()
crawler.warmup()

result = crawler.run(
    url='https://mp.weixin.qq.com/s?__biz=Mzg2MDg5NzE5NA==&mid=2247489168&idx=1&sn=9d7cee1d5641b0ad89568d48ccdef75c&chksm=ce1e3c55f969b5439f0efbbee58ebd3654238a90b049c603f13cc98450f5893e64d222d23f89&token=1468678215&lang=zh_CN#rd',
    screenshot=true
)
print(result)                

适用于 LLM 的输出格式

导出markdown

JSON格式

截屏

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: