闲社服务运行正常AI智能体自动化平台
c

AI网页爬取

技能标识:crawl4ai

AI-powered web scraping framework for extracting structured data from websites. Use when Codex needs to crawl, scrape, or extract data from web pages using AI-powered parsing, handle dynamic content, or work with complex HTML structures.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
2
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

AI网页爬取

Crawl4ai

概述

Crawl4ai 是一个基于人工智能的网络爬取框架,旨在高效地从网站中提取结构化数据。它将传统的 HTML 解析与人工智能相结合,以处理动态内容、智能提取文本,并从复杂的网页中清理和结构化数据。

何时使用该技能

当 Codex 需要以下操作时使用:

  • - 从网页中提取结构化数据(产品、文章、表单、表格等)
  • 爬取包含动态内容或复杂 JavaScript 的网站
  • 清理和规范化从各种 HTML 结构中提取的数据
  • 处理返回 HTML 的 API 或 Web 服务
  • 通过直接爬取解决 CORS 限制
  • 大规模、可靠地处理网页内容

触发短语:

  • - 从该网站提取数据
  • 爬取此页面获取[特定数据]
  • 解析此 HTML
  • 从[URL]获取数据
  • 从[网站]提取结构化信息
  • 从[网站]爬取[数据类型]
  • 网络爬取[URL]

快速入门

基本用法

python
from crawl4ai import AsyncWebCrawler, BrowserMode

async def scrape_page(url):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
browser_mode=BrowserMode.LATEST,
headless=True
)
return result.markdown, result.clean_html

提取结构化数据

python
from crawl4ai import AsyncWebCrawler, JsonModeScreener
import json

async def extract_products(url):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
screenshot=True,
javascript=True,
bypass_cache=True
)
# 提取产品数据
products = []
for item in result.extracted_content:
if item[type] == product:
products.append({
name: item[name],
price: item[price],
url: item[url]
})
return products

常见任务

网络爬取基础

场景: 用户想要爬取网站上的所有文章标题。

python
from crawl4ai import AsyncWebCrawler

async def scrape_articles(url):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
javascript=True,
verbose=True
)
# 从 HTML 中提取文章标题
articles = result.extractedcontent if result.extractedcontent else []
titles = [item.get(name, item.get(text, )) for item in articles]
return titles

触发: 爬取此网站的文章标题 或 从[URL]获取所有标题

动态内容处理

场景: 网站通过 JavaScript 加载数据。

python
from crawl4ai import AsyncWebCrawler

async def scrapedynamicsite(url):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
javascript=True, # 等待 JS 执行
wait_for=body, # 等待特定元素
delay=1.5, # 加载后等待时间
headless=True
)
return result.markdown

触发: 爬取此动态网站 或 此页面需要 JavaScript 加载数据

结构化数据提取

场景: 提取特定字段,如价格、描述等。

python
from crawl4ai import AsyncWebCrawler

async def extractproductdetails(url):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
screenshot=True,
js_code=
const products = document.querySelectorAll(.product);
return Array.from(products).map(p => ({
name: p.querySelector(.name)?.textContent,
price: p.querySelector(.price)?.textContent,
url: p.querySelector(a)?.href
}));

)
return result.extracted_content

触发: 从该页面提取产品详情 或 从[URL]获取价格和名称

HTML 清理与解析

场景: 清理杂乱的 HTML 并提取干净的文本。

python
from crawl4ai import AsyncWebCrawler

async def cleanandparse(url):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
remove_tags=[script, style, nav, footer, header],
onlymaincontent=True
)
# 清理并返回 markdown
cleantext = result.cleanhtml
return clean_text

触发: 清理此 HTML 或 从该页面提取主要内容

高级功能

自定义 JavaScript 注入

python
async def customscrape(url, customjs):
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
jscode=customjs,
js_only=True # 仅执行 JS,不下载资源
)
return result.extracted_content

会话管理

python
from crawl4ai import AsyncWebCrawler

async def multipagescrape(base_url, urls):
async with AsyncWebCrawler() as crawler:
results = []
for url in urls:
result = await crawler.arun(
url=url,
sessionid=fsession{url},
bypass_cache=True
)
results.append({
url: url,
content: result.markdown,
status: result.success
})
return results

最佳实践

  1. 1. 始终检查网站是否允许爬取 - 遵守 robots.txt 和服务条款
  2. 使用适当的延迟 - 在请求之间添加延迟,避免压垮服务器
  3. 优雅地处理错误 - 实现重试逻辑和错误处理
  4. 有选择性地提取数据 - 只提取所需内容,不要转储整个页面
  5. 可靠地存储数据 - 以结构化格式(JSON、CSV)保存提取的数据
  6. 清理 URL - 处理重定向和格式错误的 URL

错误处理

python
async def robust_scrape(url):
try:
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url=url,
timeout=30000 # 30 秒超时
)
if result.success:
return result.markdown, result.extracted_content
else:
print(f爬取失败:{result.error_message})
return None, None
except Exception as e:
print(f爬取错误:{str(e)})
return None, None

输出格式

Crawl4ai 支持多种输出格式:

  • - Markdown:清晰、可读的文本(result.markdown)
  • Clean HTML:结构化、清理后的 HTML(result.cleanhtml)
  • Extracted Content:结构化的 JSON 数据(result.extractedcontent)
  • Screenshot:可视化表示(result.screenshot)
  • Links:页面上找到的所有链接(result.links)

资源

scripts/

用于常见爬取操作的 Python 脚本:
  • - scrapesinglepage.py - 基本爬取工具
  • scrapemultiplepages.py - 带分页的批量爬取
  • extractfromhtml.py - HTML 解析辅助工具
  • clean_html.py - HTML 清理工具

references/

文档和示例:
  • - apireference.md - 完整 API 文档
  • examples.md - 常见用例和模式
  • errorhandling.md - 故障排除指南

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 crawl4ai-1776340222 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 crawl4ai-1776340222 技能

通过命令行安装

skillhub install crawl4ai-1776340222

下载

⬇ 下载 crawl4ai v1.0.0(免费)

文件大小: 16.36 KB | 发布时间: 2026-4-17 14:07

v1.0.0 最新 2026-4-17 14:07
Initial release of crawl4ai – an AI-powered web scraping framework for extracting structured data from websites.

- Enables intelligent extraction and cleaning of data from complex or dynamic web pages.
- Supports scraping with JavaScript rendering, main content extraction, and custom data fields (like products or articles).
- Offers simple Python async interface with robust error handling and output as markdown, clean HTML, structured JSON, and screenshots.
- Includes guidance for common scraping scenarios, custom JavaScript injection, session management, and batch/bulk scraping.
- Provides best practices for responsible web scraping and includes sample scripts and documentation for quick onboarding.
返回顶部