网页抓取工具免费版
概述
网页抓取工具免费版是一款基于Python和Scrapling的轻量级网页内容抓取工具。它支持纯文本抓取、CSS选择器精准提取和结果文件保存,帮助个人用户快速获取网页内容. 免费版适合单页抓取场景,通过简单的命令行参数即可完成网页内容提取。Scrapling是一个高性能的网页解析库,支持CSS选择器语法,能够从复杂HTML中精准提取目标数据.
核心能力
| 能力模块 | 说明 | 免费版支持 |
|---|---|---|
| 纯文本抓取 | 获取网页全部可见文本 | 支持 |
| CSS选择器 | 按选择器精准提取内容 | 支持 |
| 文件保存 | 抓取结果保存到文件 | 支持 |
| 多页抓取 | 批量抓取多个URL | 不支持 |
| JS渲染 | 等待JavaScript动态加载 | 不支持 |
| 分页抓取 | 自动翻页抓取 | 不支持 |
| 结构化输出 | JSON/CSV格式输出 | 不支持 |
| 代理支持 | 通过代理抓取 | 不支持 |
| 认证抓取 | 需登录的页面 | 不支持 |
已知限制
执行已知限制操作,使用input_params参数进行配置,支持创建/查询/导出等操作.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
单次只抓取一个URL
单次只抓取一个URL
处理: 解析单次只抓取一个URL的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回单次只抓取一个URL的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
不支持JavaScript动态
不支持JavaScript动态渲染页面
处理: 解析不支持JavaScript动态的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回不支持JavaScript动态的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
不支持自动翻页
不支持自动翻页
处理: 解析不支持自动翻页的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回不支持自动翻页的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
不支持结构化(JSON/CSV
不支持结构化(JSON/CSV)输出
处理: 解析不支持结构化(JSON/CSV的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回不支持结构化(JSON/CSV的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
不支持代理与认证
不支持代理与认证
处理: 解析不支持代理与认证的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回不支持代理与认证的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
处理: 解析已知限制的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回已知限制的响应数据,包含状态码、结果和日志. 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:轻量级网页内容抓、取工具、选择器提取与文件、适合个人用户快速、获取网页文本、网页抓取工具免费、版为个人用户提供、轻量级的网页内容、抓取与提取能力等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
使用场景
场景一:文章正文快速提取
用户希望抓取一篇网页文章的正文内容,保存为本地文本文件.
输入格式
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 网页抓取工具免费版处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
# 抓取网页纯文本
python (请参考skill目录中的脚本文件) --url "https://example.com/article"
# ...
# 抓取并保存到文件
com/article" --out "article.txt"
输出示例:
=== Page Title ===
Source: https://example.com/article
Fetched: 2026-07-18 10:30:00
# ...
这是文章的正文内容。网页抓取工具会自动去除导航栏、侧边栏、
页脚等非正文元素,提取页面的主要文本内容...
# ...
[文章正文继续...]
场景二:精准数据字段提取
用户需要从网页中提取特定字段(如标题、价格、日期),使用CSS选择器精准定位.
# 提取页面标题
com" --selector "title::text"
# ...
# 提取文章标题
com/blog" --selector "h1.article-title::text"
# ...
# 提取多个元素(列表)
com/products" --selector "div.product-name::text"
输出示例:
=== Selector: h1.article-title::text ===
# ...
vLLM 0.8发布:PagedAttention全面升级
场景三:页面元数据提取
用户希望提取网页的meta信息(描述、关键词、作者等).
# 提取meta描述
com" --selector "meta[name=description]::attr(content)"
# ...
# 提取meta关键词
com" --selector "meta[name=keywords]::attr(content)"
# ...
# 提取canonical URL
com" --selector "link[rel=canonical]::attr(href)"
不适用场景
以下场景网页抓取工具免费版不适合处理:
- 实时流数据处理
- 小规模数据手动分析
- 非结构化文本情感分析
触发条件
需要数据分析、报表生成、统计洞察、数据可视化时使用。不适用于非本工具能力范围的需求.
快速开始
依赖详情
# 安装Scrapling及其全部可选依赖
pip install "scrapling[all]"
scrapling install
# ...
# 安装httpx(HTTP客户端)
pip install httpx
第二步:首次抓取
# 最简用法:抓取网页纯文本
第三步:使用CSS选择器
# 提取特定元素
com" --selector "h1::text"
# ...
# 保存到文件
com" --selector "h1::text" --out "title.txt"
示例
命令行参数详解
python (请参考skill目录中的脚本文件) [选项]
# ...
选项:
--url URL 目标网页URL(必需)
--selector SELECT CSS选择器(可选,不指定则抓取全文)
--out PATH 输出文件路径(可选,不指定则输出到终端)
常用CSS选择器示例
# 文本提取
title::text # 页面标题文本
h1::text # 一级标题文本
p::text # 段落文本
div.content::text # 指定class的div文本
# ...
# 属性提取
a::attr(href) # 所有链接的href属性
img::attr(src) # 所有图片的src属性
meta[name=description]::attr(content) # meta描述
# ...
# 层级选择
div.article > h1::text # article下级的h1
ul.menu li::text # menu列表项文本
table.data tr td::text # 表格单元格文本
# ...
# 伪类选择
li:first-child::text # 第一个列表项
a[href*=pdf]::attr(href) # 包含pdf的链接
Scrapling安装说明
# 完整安装(推荐,包含浏览器引擎)
pip install "scrapling[all]"
scrapling install
# ...
# 最小安装(仅核心解析功能)
pip install scrapling
# ...
# 验证安装
python -c "import scrapling; print(scrapling.__version__)"
最佳实践
1. 优先使用CSS选择器精准提取
纯文本抓取会包含页面的所有文本(含导航、广告等噪音)。如果只需要特定内容,务必使用--selector参数精准定位,大幅提升数据质量.
2. 选择器要先在浏览器验证
在命令行使用选择器前,先用浏览器开发者工具(F12)在Console中测试document.querySelector("你的选择器"),确认能命中目标元素,避免抓取空结果.
3. 处理动态加载内容
免费版不支持JS渲染。如果目标页面内容通过JavaScript动态加载,抓取结果可能为空。解决方法:(1)寻找页面的API接口直接抓取JSON;(2)查看页面源码确认内容是否在HTML中;(3)升级到专业版使用JS渲染功能.
4. 遵守robots.txt与使用条款
抓取前检查目标站点的robots.txt(如https://example.com/robots.txt),遵守抓取规则。控制抓取频率,避免对目标站点造成压力.
5. 文件保存便于后续处理
抓取结果保存为文件后,便于AI助手进一步分析、总结或归档:
com/long-article" --out "article.txt"
# 然后让AI助手阅读article.txt并生成摘要
常见问题
Q: Scrapling安装失败怎么办?
A: 常见原因:(1)Python版本过低,需≥3.8;(2)scrapling install下载浏览器引擎失败,检查网络或使用代理;(3)系统缺少编译依赖。建议先尝试pip install scrapling(最小安装),再按需安装可选依赖.
Q: 抓取结果是空字符串怎么办?
A: 可能原因:(1)CSS选择器未命中任何元素,用浏览器开发者工具验证;(2)页面内容通过JS动态加载,免费版不支持JS渲染;(3)页面需要特定请求头(User-Agent等)。建议先不加--selector抓取纯文本,确认页面是否可正常抓取.
Q: 抓取被目标网站拦截怎么办?
A: 部分网站有反爬机制。免费版不支持代理和自定义请求头。解决方法:(1)降低抓取频率;(2)更换目标URL(如使用RSS源替代网页抓取);(3)升级到专业版使用代理与请求头定制功能.
Q: CSS选择器语法不熟悉怎么办?
A: CSS选择器遵循标准语法。常用模式:标签名(如h1)、.类名(如.title)、#ID(如#header)、属性选择器(如a[href])。文本提取用::text,属性提取用::attr(属性名)。参考W3Schools CSS选择器教程.
Q: 抓取结果包含大量HTML标签怎么办?
A: 使用::text后缀只提取文本内容,不带HTML标签。如果未使用::text而直接选择元素,返回的是HTML片段。确保选择器以::text或::attr(xxx)结尾.
Q: 如何抓取需要登录的页面?
A: 免费版不支持认证抓取。需要登录的页面无法直接抓取。解决方法:(1)寻找该页面的公开API;(2)手动复制页面内容;(3)升级到专业版使用Cookie/Header注入功能.
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- Python版本: ≥ 3.8
- 运行时: 需要终端执行能力(exec)以调用Python脚本
第三方依赖
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Python 3.8+ | 运行时 | 必需 | https://python.org |
| Scrapling | Python库 | 必需 | pip install "scrapling[all]" |
| httpx | HTTP客户端 | 必需 | pip install httpx |
| 浏览器引擎 | 系统组件 | 条件必需 | scrapling install |
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| 网络访问 | 网络 | 必需 | 需能访问目标网页URL |
API Key 配置
- 本Skill基于Python脚本驱动,无需额外API Key
- 无外部付费API依赖
- 目标网页若需认证,免费版暂不支持
可用性分类
- 分类: MD+EXEC(纯Markdown指令,核心功能需要exec命令行执行Python脚本)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent调用Python脚本完成网页内容抓取任务。免费版聚焦个人用户的单页抓取、CSS选择器提取与文件保存,适合文章正文提取、数据字段精准提取与页面元数据获取场景.
错误处理
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
评论
加载中…