with one click
structured-extraction
Extract structured data from web pages using browser snapshot and text tools, then process it into tables, comparisons, or summaries using Python.
Menu
Extract structured data from web pages using browser snapshot and text tools, then process it into tables, comparisons, or summaries using Python.
Translate natural language image descriptions into detailed, structured DALL-E prompts with subject, style, composition, lighting, and mood specifications.
Decompose mathematical problems into sub-expressions, evaluate each one with the calculator tool, and present the full working chain. Handles arithmetic, trigonometry, logarithms, and financial formulas.
Compare two or more PDF documents by extracting targeted sections, building a structured comparison matrix, and highlighting differences with page references.
Analyze endpoint latency trends using historical check data from memory. Detects slow degradation, spikes vs sustained issues, and calculates baseline deviations.
Validate API response structure and content. Detects schema drift, unexpected null values, and abnormal response sizes.
Check SSL/TLS certificate expiry and chain validity using openssl. Alerts on certificates expiring within 30 days.
| name | structured-extraction |
| description | Extract structured data from web pages using browser snapshot and text tools, then process it into tables, comparisons, or summaries using Python. |
| requires | {"bins":["agent-browser"]} |
Structured web data extraction skill.
Use this skill when you need to:
Use the think tool to identify:
Open the target URL and confirm you landed on the right page:
open_url("https://example.com/pricing")
Check the title and URL in the response to verify.
Take a snapshot to understand the page structure:
snapshot()
Look for:
If the page has distinct sections, use a CSS selector to scope
the snapshot: snapshot(selector=".pricing-table")
Use get_text to pull text from specific elements or the full page:
get_text(ref="@e5") # specific element
get_text() # full page text
For tabular data, extracting the full page text often captures tables in a readable format.
Screenshot key pages for the research report:
screenshot(full_page=false) # viewport
screenshot(full_page=true) # full page
screenshot(annotate=true) # with element labels
Include screenshot paths in your report so the user can review the raw source.
Use Python to structure the extracted text into clean data:
data = [
{"name": "Plan A", "price": "$10/mo", "features": "5 users, 10GB"},
{"name": "Plan B", "price": "$25/mo", "features": "25 users, 100GB"},
]
# Format as markdown table
header = "| Plan | Price | Features |"
sep = "|------|-------|----------|"
rows = [f"| {d['name']} | {d['price']} | {d['features']} |" for d in data]
print(header)
print(sep)
print("\n".join(rows))
For multi-page results:
snapshot() to find the next page controlclick(@next_ref, wait_until="networkidle")Set a reasonable limit (e.g. 5 pages) unless the user asks for more. Always report how many pages you processed.
Some data loads dynamically. Strategies:
wait_for(text="Price") -- wait for specific text to appearwait_for(ref="@e1", state="visible") -- wait for an elementclick on tabs or "Load more" buttons to reveal hidden contentwait_for(load="networkidle") after interactions