### 前言:为什么 Armbian 与众不同?
Crawl4AI
是一个强大的网页抓取工具,但它依赖的底层浏览器自动化库 Playwright 官方主要提供为普通电脑/服务器(x86_64 架构)编译的浏览器。我们的 Armbian 系统运行在 ARM 架构上,因此无法使用官方的自动安装程序。本指南的核心就是绕过这个限制,手动配置,让 Crawl4AI
在 Armbian 上完美运行。
### 第一步:系统环境准备 (安装系统版浏览器)
我们不使用 Crawl4AI
自带的安装脚本,而是直接从 Armbian 的软件库中安装已经为 ARM 架构编译好的 Chromium 浏览器。
更新软件列表并安装 Chromium:
Bash
sudo apt-get update sudo apt-get install -y chromium-browser
获取浏览器路径:
安装完成后,运行以下命令找到它的可执行文件路径,并复制这个路径以备后用。
Bash
which chromium-browser
(通常路径为
/usr/bin/chromium-browser
)
### 第二步:安装 Python 包并初始化环境
接下来,我们安装 Crawl4AI
的 Python 包,并进行一个关键的环境初始化步骤。
使用 pip 安装 Crawl4AI:
Bash
pip install crawl4ai
初始化 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 架构不同而导致的兼容性问题。