返回顶部
c

crawl4aiAI网页爬取

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
安全检测
已通过
1,924
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

crawl4ai

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.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部