# AI-Crawler

## 概览

[**AI-Crawler**](https://aistudio.oxylabs.io/apps/crawl) 是一个使用先进 AI 算法爬取指定域名的数据提取应用。它根据自然语言提示识别相关页面并提取结构化 **JSON** 或 **Markdown** 输出数据。

这个低代码工具旨在简化复杂的数据获取任务，使开发人员和数据科学家能够专注于分析，而无需构建和维护自定义网页爬虫。AI 网络爬虫提供高级过滤、基于模式的解析，以及与各种自动化流水线的无缝集成。

您可以预览该工具 [**此处**](https://aistudio.oxylabs.io/apps/crawl) 并通过我们的 Python/JavaScript SDK、MCP 服务器或我们的一些第三方集成将其集成到您的工作流中。

## 主要功能

* **从任意给定 URL 开始爬取：** 使用 AI Crawler 从任何有效的网络地址开始数据提取。
* **自然语言提示：** 用简单的英语定义您的数据需求，爬虫代理将解释提示以查找相关内容。
* **AI 辅助的 URL 选择：** AI 网络爬虫会智能地探索站点，识别并优先处理与您的提示最相关的页面。
* **多种输出格式：** 在结构化 JSON 或 Markdown 输出之间选择，以便与自动化或 AI 工作流无缝集成。
* **基于模式的解析：** 对于 JSON 输出，您可以用自然语言定义解析模式，以确保提取的数据被结构化以适配您的应用。

## 用法

要开始使用 AI Crawler，请遵循以下四个步骤：

1. **提供起始 URL** 您希望网络爬虫探索的网站的起始地址。
2. **描述要抓取的内容** 使用自然语言提示告诉爬虫代理您希望检索的内容。
3. **选择输出格式。** 在结构化 JSON 或 Markdown 之间进行选择。
4. **如果使用 JSON 输出，** 提供一个模式以指导 AI 网络爬虫解析并结构化提取的数据。

### 安装

开始之前，请确保您有 API 密钥（或 [获取免费试用](https://aistudio.oxylabs.io/register) 并使用 **1,000 credits**）以及 `已安装 Python 3.10+` 。您可以安装该 `oxylabs-ai-studio` 软件包：

```sh
pip install oxylabs-ai-studio
```

### 代码示例（Python）

以下示例演示如何使用 `AiCrawler` 执行常见的爬取任务。

```python
from oxylabs_ai_studio.apps.ai_crawler import AiCrawler
import json

# 使用您的 API 密钥初始化 AI Crawler
crawler = AiCrawler(api_key="your_api_key")

# 从自然语言自动生成模式
schema = crawler.generate_schema(prompt="want to parse name, platform, price")
print(f"生成的 schema: {schema}")

# 爬取网站并提取结构化数据
url = "https://sandbox.oxylabs.io/products"
result = crawler.crawl(
    url=url,
    user_prompt="Find all Halo games for Xbox",
    output_format="json",
    schema=schema,
    render_javascript=False,
    return_sources_limit=3,
    geo_location="US",
)

# 以 JSON 打印爬取输出
print("结果:")
print(json.dumps(result.data, indent=2))
```

在我们的 [PyPI 存储库](https://pypi.org/project/oxylabs-ai-studio/)中了解有关 AI-Crawler 和 Oxylabs AI Studio Python SDK 的更多信息。您也可以查看我们的 [AI Studio JavaScript SDK](https://github.com/oxylabs/oxylabs-ai-studio-js) 供 JS 用户的指南。

### 请求参数

| 参数                     | 说明                             | 默认值        |
| ---------------------- | ------------------------------ | ---------- |
| `url`\*                | 要爬取的起始 URL                     | —          |
| `user_prompt`\*        | 用于指导提取的自然语言提示                  | —          |
| `output_format`        | 输出格式（`json`, `markdown`)       | `markdown` |
| `schema`               | 用于结构化提取的 OpenAPI 模式（JSON 时为必填） | —          |
| `render_javascript`    | 启用渲染 JavaScript                | `False`    |
| `return_sources_limit` | 要返回的最大源数                       | `25`       |
| `geo_location`         | 以 ISO2 格式的代理位置                 | —          |

`*` – 必填参数

#### 输出示例

`AI-Crawler` 可以返回已解析、可直接使用的输出，便于集成到您的应用中。

其 JSON 输出示例如下：

```json
[
  {
    "data": {
      "items": [
        {
          "name": "Halo: Reach",
          "platform": "Xbox platform",
          "price": 84.99
        }
      ]
    },
    "src": "https://sandbox.oxylabs.io/products/141"
  },
  {
    "data": {
      "items": [
        {
          "name": "Halo 3",
          "platform": "Xbox platform",
          "price": 81.99
        }
      ]
    },
    "src": "https://sandbox.oxylabs.io/products/28"
  },
  {
    "data": {
      "items": [
        {
          "name": "Halo: Combat Evolved",
          "platform": "Xbox platform",
          "price": 87.99
        }
      ]
    },
    "src": "https://sandbox.oxylabs.io/products/6"
  }
]
```

或者，您可以使用 `output_format=”markdown”` 以接收 Markdown 结果而非解析后的 JSON。

### 实际使用场景

AI-Crawler 是一个适用于多种场景的通用工具，包括：

1. **查找服务条款页面：** 快速定位域内的法律和政策页面。
2. **收集定价页面：** 收集定价详情以进行竞争分析或市场研究。
3. **检索所有 “关于” 页面：** 自动从一列网站中查找并提取公司信息。
4. **列出与 AI 相关的新闻文章：** 爬取新闻网站以收集并存档特定主题的文章。

<br>
