综合介绍
par_scrape 是一个基于 Python 的开源网页爬虫工具,由开发者 Paul Robello 在 GitHub 上推出,旨在帮助用户从网页中智能提取数据。它整合了 Selenium 和 Playwright 两种强大的浏览器自动化技术,并结合 AI 处理能力,支持从简单静态页面到复杂动态网站的数据抓取。无论是提取价格、标题还是其他结构化信息,par_scrape 都能通过指定字段快速完成任务,并将结果输出为 Markdown、JSON 或 CSV 等格式。项目适用于开发者、数据分析师或希望自动化收集网络信息的用户,安装简单且功能灵活,深受开源社区欢迎。
功能列表
- 智能数据提取:通过 AI 模型(如 OpenAI 或 Anthropic)分析网页内容,精准提取用户指定的字段。
- 双重爬虫支持:支持 Selenium 和 Playwright 两种技术,适应不同网站架构需求。
- 多种输出格式:抓取结果可输出为 Markdown、JSON、CSV 或 Excel,方便后续处理。
- 自定义字段抓取:用户可指定提取的字段,如标题、描述、价格等,满足个性化需求。
- 并行抓取:支持多线程抓取,提升大规模数据采集效率。
- 等待机制:提供多种页面加载等待方式(如暂停、选择器等待),确保动态内容抓取成功。
- AI 模型选择:支持多种 AI 提供者(如 OpenAI、Anthropic、XAI),灵活适配不同任务。
- 缓存优化:内置提示缓存功能,减少重复请求成本,提高效率。
使用帮助
安装流程
要使用 par_scrape,需要先完成以下安装步骤,确保环境准备充分。以下是详细的安装指南:
1. 环境准备
- Python 版本:确保系统已安装 Python 3.11 或以上版本,可通过命令
python --version
检查。 - Git 工具:用于从 GitHub 克隆代码,若未安装,可通过
sudo apt install git
(Linux)或官网下载安装。 - UV 工具:推荐使用 UV 管理依赖,安装命令为:
- Linux/Mac:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Linux/Mac:
2. 克隆项目
在终端输入以下命令,将 par_scrape 项目克隆到本地:
git clone https://github.com/paulrobello/par_scrape.git
cd par_scrape
3. 安装依赖
使用 UV 安装项目依赖:
uv sync
或者直接从 PyPI 安装:
uv tool install par_scrape
# 或使用 pipx
pipx install par_scrape
4. 安装 Playwright(可选)
若选择 Playwright 作为爬虫工具,需额外安装并配置浏览器:
uv tool install playwright
playwright install chromium
5. 配置 API 密钥
par_scrape 支持多种 AI 提供者,需在环境变量中配置对应密钥。编辑 ~/.par_scrape.env
文件,添加以下内容(根据需求选择):
OPENAI_API_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key
XAI_API_KEY=your_xai_key
或者在运行命令前设置环境变量:
export OPENAI_API_KEY=your_openai_key
使用方法
安装完成后即可通过命令行运行 par_scrape,以下是详细操作流程:
基本使用示例
假设要从 OpenAI 定价页面提取标题、描述和价格:
par_scrape --url "https://openai.com/api/pricing/" -f "Title" -f "Description" -f "Price" --model gpt-4o-mini --display-output md
--url
:目标网页地址。-f
:指定提取字段,可多次使用。--model
:选择 AI 模型(如 gpt-4o-mini)。--display-output
:输出格式(md、json、csv 等)。
特色功能操作
- 切换爬虫工具
默认使用 Playwright,若需使用 Selenium,可添加参数:par_scrape --url "https://example.com" -f "Title" --scraper selenium
- 并行抓取
设置最大并行请求数,提升效率:par_scrape --url "https://example.com" -f "Data" --scrape-max-parallel 5
- 动态页面等待
对于动态加载内容,可设置等待类型和选择器:par_scrape --url "https://example.com" -f "Content" --wait-type selector --wait-selector ".dynamic-content"
支持的等待类型包括
none
、pause
、sleep
、idle
、selector
和text
。 - 自定义输出路径
将结果保存到指定文件夹:par_scrape --url "https://example.com" -f "Title" --output-folder ./my_data
操作流程详解
以抓取定价页面为例:
- 确定目标:访问 https://openai.com/api/pricing/,确认需要提取 “Model”、“Pricing Input” 和 “Pricing Output”。
- 运行命令:
par_scrape --url "https://openai.com/api/pricing/" -f "Model" -f "Pricing Input" -f "Pricing Output" --model gpt-4o-mini --display-output json
- 查看结果:命令执行后,终端显示 JSON 格式数据,或保存至默认输出文件。
- 调整参数:若数据不完整,可尝试增加
--retries 5
(重试次数)或调整--sleep-time 5
(等待时间)。
注意事项
- API 密钥:确保密钥有效,否则 AI 提取功能不可用。
- 网站限制:某些网站可能有反爬机制,建议使用
--headless
(无头模式)或调整抓取频率。 - 缓存使用:若多次抓取同一页面,可启用
--prompt-cache
减少成本。
通过以上步骤,用户可快速上手 par_scrape,轻松完成网页数据提取任务。