Help us improve
Share bugs, ideas, or general feedback.
From zyte-web-data
Generates web-poet page objects for Scrapy projects by specifying file path, class name, domain, base class, and item class.
npx claudepluginhub zytedata/claude-skills --plugin zyte-web-dataHow this skill is triggered — by the user, by Claude, or both
Slash command
/zyte-web-data:scrape-add-page-object [file-path] [class-name] [domain] [base-class] [item-class][file-path] [class-name] [domain] [base-class] [item-class]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are adding an empty web-poet page object to a Scrapy project.
Mines projects and conversations into a searchable memory palace and retrieves past work via semantic search.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
Share bugs, ideas, or general feedback.
You are adding an empty web-poet page object to a Scrapy project.
The raw argument string is $ARGUMENTS. Split it into up to 6 whitespace-separated positional arguments:
books_project/pages/books_toscrape_com.py)ProductPage)@handle_urls (e.g. books.toscrape.com)web_poet.WebPage)books_project.items.ProductItem)name,price,rating)Required fields (no default value in the item class) need @field stubs so the page
object doesn't fail on instantiation. Run in the project's env:
uv run --project PROJECT_DIR ${CLAUDE_SKILL_DIR}/scripts/list_required_fields.py \
ITEM_CLASS
Outputs a JSON array of field names, e.g. ["name", "price"]. If all fields have
defaults, the output is [] — no stubs needed.
uv run ${CLAUDE_SKILL_DIR}/scripts/add_page_object.py \
FILE_PATH CLASS_NAME DOMAIN BASE_CLASS ITEM_CLASS \
--fields FIELDS
Pass the required fields from step 1 as --fields (comma-separated). If no required
fields, omit --fields — the class body will be pass.
The script uses libcst for correct AST manipulation:
ProductPage and CategoryPage)Common base classes:
web_poet.WebPage — for pages using HTTP responses (most common)