网络爬虫引擎

作者:鹿Sir开发工具v3

网络爬虫与数据提取引擎,支持网页数据抓取、解析、清洗和结构化输出。 适用场景:(1) 网页数据采集与提取 (2) 列表页/详情页批量抓取 (3) 动态页面数据获取 (4) 数据清洗与结构化处理 (5) 定时采集任务配置。 触发词:"爬虫"、"抓取"、"数据采集"、"网页提取"、"web scraping"、"爬取"、"数据抓取"、"批量采集"。

下载量
349
点赞
87
价格
¥1.99
精选

技能文档

---
name: afrexai-web-scraping-engine
description: >
  网络爬虫与数据提取引擎,支持网页数据抓取、解析、清洗和结构化输出。
  适用场景:(1) 网页数据采集与提取 (2) 列表页/详情页批量抓取
  (3) 动态页面数据获取 (4) 数据清洗与结构化处理 (5) 定时采集任务配置。
  触发词:"爬虫"、"抓取"、"数据采集"、"网页提取"、"web scraping"、"爬取"、"数据抓取"、"批量采集"。
title: 网络爬虫引擎
category: 开发工具
---

# 网络爬虫引擎

## 概述

通用的网络数据采集引擎,支持静态页面和动态渲染页面的数据抓取,提供从数据采集到结构化输出的完整解决方案。

## 核心能力

### 1. 页面数据采集

**支持类型:**
- 静态HTML页面(requests + BeautifulSoup)
- 动态渲染页面(Playwright/Selenium)
- API接口数据(JSON/XML响应)
- 分页/滚动加载数据

**采集策略:**
```
单页采集:
1. 发送请求 → 2. 解析内容 → 3. 提取数据 → 4. 存储结果

批量采集:
1. 列表页遍历 → 2. 详情页进入 → 3. 数据提取 → 4. 翻页处理

动态页面:
1. 启动浏览器 → 2. 等待渲染 → 3. 提取DOM → 4. 解析数据
```

### 2. 数据解析

**解析方法:**

| 方法 | 适用场景 | 工具 |
|------|----------|------|
| CSS选择器 | 有明确class/id | BeautifulSoup |
| XPath | 复杂路径定位 | lxml |
| 正则表达式 | 文本模式匹配 | re |
| JSON解析 | API返回数据 | json/jq |
| 表格解析 | HTML表格数据 | pandas |

### 3. 反爬应对

**常见反爬及对策:**

| 反爬手段 | 应对方案 |
|----------|----------|
| User-Agent检测 | 随机UA轮换 |
| IP限制 | 代理池轮换 |
| 频率限制 | 请求间隔随机化 |
| 验证码 | 识别或人工介入 |
| Cookie验证 | Session保持 |
| JS加密 | 逆向分析或浏览器渲染 |
| 动态Token | 页面解析获取 |

### 4. 数据清洗

**清洗流程:**
1. 去重(基于唯一标识字段)
2. 空值处理(填充/删除/标记)
3. 格式统一(日期、数字、编码)
4. 异常值处理(范围检查、类型检查)
5. 字段标准化(命名统一、单位统一)

### 5. 输出格式

支持多种结构化输出:

```
JSON:[{"field1": "value1", ...}, ...]
CSV:表头 + 数据行
Excel:带格式的工作表
Markdown:表格格式
数据库:SQL INSERT语句
```

## 代码模板

### 基础采集脚本

```python
import requests
from bs4 import BeautifulSoup

def scrape(url):
    headers = {"User-Agent": "Mozilla/5.0..."}
    resp = requests.get(url, headers=headers, timeout=10)
    soup = BeautifulSoup(resp.text, "html.parser")
    
    items = soup.select(".item-class")
    results = []
    for item in items:
        results.append({
            "title": item.select_one(".title").text.strip(),
            "link": item.select_one("a")["href"],
        })
    return results
```

### 动态页面采集

```python
from playwright.sync_api import sync_playwright

def scrape_dynamic(url):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        page.goto(url, wait_until="networkidle")
        
        items = page.query_selector_all(".item-class")
        results = []
        for item in items:
            results.append({
                "title": item.query_selector(".title").inner_text(),
            })
        browser.close()
        return results
```

## 合规要求

- 遵守robots.txt协议
- 控制请求频率,不影响目标站点
- 不采集个人隐私数据
- 遵守数据使用相关法律法规
- 注明数据来源

## 原则

- 合规采集:遵守网站使用条款和法律法规
- 容错健壮:网络异常、页面变化时有兜底
- 高效稳定:合理使用并发和缓存
- 数据质量:确保采集数据准确完整

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手