关于 scrape-add-page-object
此技能可在 Scrapy 项目中添加空的 web-poet 页面对象,既能新建文件,也能向现有模块追加类。它会自动检测必需的 item 字段,也可通过指定字段列表覆盖检测结果。
主要功能
- 01创建或扩展 Python 模块
- 02添加带 URL 处理的页面对象
- 03自动检测必需的 item 字段
- 04使用逗号分隔列表指定字段
- 05向现有文件追加时合并导入
适用场景
- 01为新域名搭建页面对象骨架
- 02向现有模块添加另一个页面类
- 03为必需的 item 字段生成存根
- 04指定字段而非使用自动检测
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zytedata/ skills --skill scrape-add-page-object安装后在 Claude Code 中输入/scrape-add-page-object确认已加载。
附带文件scripts/add_page_object.py
详细介绍
你正在向 Scrapy 项目添加一个空的 web-poet 页面对象。
请阅读 ${CLAUDE_SKILL_DIR}/../scrape/references/python-environments.md。
输入
原始参数字符串为 $ARGUMENTS。将其拆分为最多 6 个以空白分隔的位置参数:
- file_path:要创建或追加内容的 .py 文件路径(例如
books_project/pages/books_toscrape_com.py) - class_name:页面对象类名(例如
ProductPage) - domain:
@handle_urls使用的域名(例如books.toscrape.com) - base_class:基类导入路径(例如
web_poet.WebPage) - item_class:条目类导入路径(例如
books_project.items.ProductItem) - fields:可选,以逗号分隔的字段名(例如
name,price,rating)
流程
请从项目根目录(包含 pyproject.toml 的目录)运行,这样条目类才能被导入,以便自动检测必填字段:
uv run --project . --with libcst ${CLAUDE_SKILL_DIR}/scripts/add_page_object.py \
FILE_PATH CLASS_NAME DOMAIN BASE_CLASS ITEM_CLASS
必填字段(条目类中没有默认值的字段)会通过 itemadapter 自动检测,并生成 @field 占位代码。如果所有字段都有默认值,则类体为 pass。传入 --fields name,price 可覆盖自动检测结果。
脚本使用 libcst 进行准确的 AST 操作:
- 如果文件不存在,则创建文件
- 追加到现有文件,并正确合并导入语句
- 多个页面对象可以共用一个模块(例如,
ProductPage和CategoryPage)
常见基类:
web_poet.WebPage— 用于使用 HTTP 响应的页面(最常见)
评论
支持 Markdown