### 前言:为什么 Armbian 与众不同?

Crawl4AI 是一个强大的网页抓取工具,但它依赖的底层浏览器自动化库 Playwright 官方主要提供为普通电脑/服务器(x86_64 架构)编译的浏览器。我们的 Armbian 系统运行在 ARM 架构上,因此无法使用官方的自动安装程序。本指南的核心就是绕过这个限制,手动配置,让 Crawl4AI 在 Armbian 上完美运行。


### 第一步:系统环境准备 (安装系统版浏览器)

我们不使用 Crawl4AI 自带的安装脚本,而是直接从 Armbian 的软件库中安装已经为 ARM 架构编译好的 Chromium 浏览器。

  1. 更新软件列表并安装 Chromium:

    Bash

    sudo apt-get update
    sudo apt-get install -y chromium-browser
    
  2. 获取浏览器路径:

    安装完成后,运行以下命令找到它的可执行文件路径,并复制这个路径以备后用。

    Bash

    which chromium-browser
    

    (通常路径为 /usr/bin/chromium-browser)


### 第二步:安装 Python 包并初始化环境

接下来,我们安装 Crawl4AI 的 Python 包,并进行一个关键的环境初始化步骤。

  1. 使用 pip 安装 Crawl4AI:

    Bash

    pip install crawl4ai
    
  2. 初始化 Playwright 环境 (但不下载浏览器):

    这一步是整个流程的关键。它会为 Playwright 创建必需的配置文件并安装所有系统依赖库,但 –with-deps 参数会阻止它下载不兼容的浏览器本体。

    Bash

    playwright install --with-deps chromium
    

### 第三步:编写并配置 Python 脚本

现在,环境已经就绪。我们需要在 Python 脚本中明确告诉 Crawl4AI 去使用我们在第一步中安装的系统浏览器。

下面是一个完整可用的 Python 脚本模板 (run_crawl.py):

Python

import asyncio
from crawl4ai import AsyncWebCrawler, CrawlerRunConfig

# --- 配置区 ---
# 1. 设置您想爬取的目标网址
TARGET_URL = "https://test.12345.com/posts/"

# 2. ⚠️ 将这里替换为您在第一步中获取到的真实浏览器路径!
ARMBIAN_BROWSER_PATH = "/usr/bin/chromium-browser" 

# 3. (可选) 设置您想使用的 CSS 选择器
CSS_SELECTOR = ".entry-link"
# --- 配置区结束 ---

async def main():
    # 将浏览器启动选项单独定义
    playwright_launcher_options = {
        "executablePath": ARMBIAN_BROWSER_PATH
    }

    # 创建只包含“单次任务”指令的配置对象
    config = CrawlerRunConfig(
        css_selector=CSS_SELECTOR
    )

    try:
        # 在创建爬虫实例时,将浏览器启动选项传入
        async with AsyncWebCrawler(
            playwright_launcher_options=playwright_launcher_options
        ) as crawler:
            
            print(f"--- 开始爬取 ---")
            print(f"目标网址: {TARGET_URL}")
            print(f"使用系统浏览器: {ARMBIAN_BROWSER_PATH}")

            # 执行异步爬取任务
            result = await crawler.arun(
                url=TARGET_URL,
                config=config
            )

            # 处理并打印结果
            if result and result.success:
                print("\n[✅] 爬取成功!")
                page_title = result.metadata.get('title', 'N/A')
                print(f"网页标题: {page_title}")
                print("\n--- Markdown 内容 ---")
                if result.markdown and result.markdown.raw_markdown:
                    print(result.markdown.raw_markdown)
                else:
                    print("未提取到 Markdown 内容。")
            else:
                error_message = result.error if result else "未知错误"
                print(f"\n[❌] 爬取失败: {error_message}")

    except Exception as e:
        print(f"\n[💥] 脚本执行过程中发生严重错误: {e}")

# --- 脚本入口 ---
if __name__ == "__main__":
    asyncio.run(main())

将以上代码保存后,通过 python3 run_crawl.py 运行,即可看到精确的爬取结果。


### 总结

在 Armbian 上成功运行 Crawl4AI 的核心在于手动接管了浏览器的安装和配置过程,通过**“系统安装 + 脚本指定”**的方式,完美绕开了官方工具因 CPU 架构不同而导致的兼容性问题。