mcpField
S
scrape-add-page-object

scrape-add-page-object

github.com/zytedata开发11169 次安装2 天前更新
代码仓库

关于 scrape-add-page-object

此技能可在 Scrapy 项目中添加空的 web-poet 页面对象,既能新建文件,也能向现有模块追加类。它会自动检测必需的 item 字段,也可通过指定字段列表覆盖检测结果。

主要功能

  1. 01创建或扩展 Python 模块
  2. 02添加带 URL 处理的页面对象
  3. 03自动检测必需的 item 字段
  4. 04使用逗号分隔列表指定字段
  5. 05向现有文件追加时合并导入

适用场景

  1. 01为新域名搭建页面对象骨架
  2. 02向现有模块添加另一个页面类
  3. 03为必需的 item 字段生成存根
  4. 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 个以空白分隔的位置参数:

  1. file_path:要创建或追加内容的 .py 文件路径(例如 books_project/pages/books_toscrape_com.py)
  2. class_name:页面对象类名(例如 ProductPage)
  3. domain:@handle_urls 使用的域名(例如 books.toscrape.com)
  4. base_class:基类导入路径(例如 web_poet.WebPage)
  5. item_class:条目类导入路径(例如 books_project.items.ProductItem)
  6. 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