**Browser-use** 是目前 AI 自动化领域非常前沿的开源框架。它的核心逻辑是： **让大模型（LLM）“长出眼睛和手”** ，像真人一样去识别网页元素、点击按钮和提取数据。

对于你想要聚合“国自然大数据平台”信息的需求，Browser-use 简直是量身定做。

---

### 1. 环境准备

首先，确保你的电脑安装了  **Python 3.11+** 。Browser-use 依赖于 Playwright（浏览器引擎）和 LangChain 体系。

#### 第一步：安装核心库

打开终端或命令行，运行：

**Bash**

```
pip install browser-use
pip install playwright
playwright install
```

#### 第二步：配置 LLM API

Browser-use 需要一个“大脑”来理解网页。你可以使用 OpenAI、Claude 或国内的 DeepSeek（通过 OpenAI 兼容接口）。

在你的项目目录下新建一个 `.env` 文件：

**代码段**

```
# 推荐使用 GPT-4o 或 Claude 3.5 Sonnet，效果最稳
OPENAI_API_KEY=你的API密钥
```

---

### 2. 编写你的第一个“科研采集 Agent”

Browser-use 的魅力在于你不需要写复杂的 CSS 选择器，只需用**自然语言**描述任务。

创建一个 `research_agent.py` 文件：

**Python**

```
import asyncio
from browser_use import Agent
from langchain_openai import ChatOpenAI

async def main():
    # 1. 定义大脑 (建议使用视觉能力强的模型)
    llm = ChatOpenAI(model="gpt-4o")

    # 2. 定义任务 (直接用中文写出你的需求)
    task = """
    1. 访问国家自然科学基金大数据知识管理服务平台 https://kd.nsfc.cn/
    2. 在搜索框输入 '智慧港口'
    3. 点击搜索按钮
    4. 提取前 2 页的所有项目信息，包括：项目名称、负责人、依托单位、金额、批准年份
    5. 将结果整理成 Markdown 表格格式打印出来
    """

    # 3. 创建 Agent
    agent = Agent(
        task=task,
        llm=llm,
    )

    # 4. 执行并运行
    result = await agent.run()
    print(result)

if __name__ == "__main__":
    asyncio.run(main())
```

---

### 3. Browser-use 的核心优势（对比传统爬虫）

* **自愈能力** ：如果 `kd.nsfc.cn` 网页改版了，按钮从左边挪到了右边，传统爬虫会挂掉，但 Browser-use 能“看到”新按钮并继续点击。
* **处理动态加载** ：它能理解“滚动加载”或“点击翻页”，你只需要告诉它“去翻页”，它会自己去找那个小箭头。
* **视觉识别** ：它可以识别图片中的验证码或复杂的 UI 交互。

---

### 4. 进阶技巧：针对国自然平台的“防封”策略

由于国自然平台有频率限制，直接狂暴抓取会导致 IP 被封。你可以利用 Browser-use 的**持久化上下文**功能，模拟更真实的真人行为：

1. **复用登录状态** ：
   你可以配置 Browser-use 使用你本地浏览器的 User Data（例如 Chrome 的配置文件夹），这样 Agent 运行时就自带了你的登录信息。
2. **慢速模拟** ：
   在 `Agent` 配置中增加 `step_delay`，让它每点击一次停 2-3 秒，降低被识别为机器人的风险。

---

### 5. 常见问题排查

* **模型选型** ：尽量使用带有 **Vision（视觉）** 能力的模型（如 GPT-4o、Claude 3.5 Sonnet）。如果使用纯文本模型，它只能通过 HTML 源码理解页面，对于复杂的 React/Vue 动态页面可能会“迷路”。
* **Token 消耗** ：由于 Browser-use 每一轮都会把网页的简化版 HTML 发送给 LLM，频繁的任务会消耗较多 Token。建议先在单页上调试好指令，再开启批量任务。
