Product Spec Table Extractor
Pricing
from $6.50 / 1,000 product page scanneds
Product Spec Table Extractor
Extract product specification tables, attribute lists, dimensions, compatibility data, materials, warnings, and download or manual links from product pages.
Pricing
from $6.50 / 1,000 product page scanneds
Rating
0.0
(0)
Developer
junipr
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Extract product specification tables, attribute lists, dimensions, compatibility data, materials, warnings, and download/manual links from product pages.
What it does
Extracts product attributes from HTML specification tables, definition lists, and Product JSON-LD additionalProperty records, with normalization and provenance.
The actor emits one row per extracted product specification, or a no-spec diagnostic. Every dataset row uses the declared dataset schema, includes source provenance and a scan timestamp, and is written only after every applicable pay-per-event charge is accepted.
Typical uses
- Extract product specification tables
- Build catalog attribute exports
- Find missing product specs
- Collect product manual links
- Normalize product dimensions and units
Input
Use public HTTP(S) URLs or deterministic htmlInputs. URL fetching rejects localhost, loopback, link-local, and private-network destinations. allowedDomains can further constrain live fetches.
startUrlssitemapUrlshtmlInputsallowedDomainsmaxPagesmaxDepthincludeEvidenceincludeRawSnapshotsrequestDelayMstimeoutMsuserAgentModeproductUrlsattributeNameMapincludeDownloadsnormalizeUnitsmaxSpecRowsPerProducttableSelectorsmaxProductPagesmaxSpecRowsPerPagemaxTablesPerPagemaxChargeUsdincludeReport
The safety caps named in maxProductPages, maxSpecRowsPerPage, maxTablesPerPage, timeoutMs are enforced in addition to maxChargeUsd. A value of 0 for maxChargeUsd is a hard zero budget: the actor exits before the first paid operation.
Minimal deterministic example
{"htmlInputs": [{"sourceUrl": "https://shop.example/public-page","html": "<html><head><title>Public page</title></head><body><h1>Public evidence</h1></body></html>"}],"includeEvidence": true,"includeReport": true,"maxChargeUsd": 15}
The prefilled input remains deliberately small so Apify automated quality runs finish quickly. For production use, replace the example source with public pages you are authorized to access.
Dataset output
sourceUrlsourceTypepageTitlerecordTyperecordNameissueCodeseverityevidenceSnippetrecommendationcanonicalUrlhttpStatusscannedAtproductUrlproductNameattributeNameattributeValueattributeGroupnormalizedValueunitdownloadUrlmanualUrlextractionConfidenceextractionSourcespecIssue
Reports are also written to key-value storage:
product-spec-table-extractor-summary-report.mdproduct-spec-table-extractor-records.csvproduct-spec-table-extractor-issues.jsonproduct-spec-table-extractor-evidence-samples.jsonproduct-spec-table-extractor-run-metadata.json
When includeRawSnapshots is true, bounded raw HTML snapshots are stored separately. Raw snapshots are off by default.
Pay-per-event pricing
Platform-usage pass-through is off. Prices are the locked fixed-inclusive values for this actor.
| Event | Price | Meaning |
|---|---|---|
actor-start | $0.01 | Actor Start |
product-page-scanned | $0.0065 | Product Page Scanned |
spec-row-extracted | $0.00295 | Spec Row Extracted |
spec-table-issue-emitted | $0.00295 | Spec Table Issue Emitted |
audit-report-generated | $0.08 | Audit Report Generated |
Charging rules:
actor-startmust be accepted before fetching or rendering begins.- Page/target events are deduplicated per source.
- Record and finding events fire only when the corresponding output exists.
- Report output is written only after the report event is accepted.
- Partial charges and Apify charge-limit responses stop the run before additional paid output.
- Store discounts are tracked as a separate Console configuration requirement; this source does not claim they are already applied.
Evidence and failure behavior
- Each row identifies its extraction source and confidence.
- Duplicate attributes are marked rather than silently discarded.
- Unit normalization is conservative and preserves the raw value.
A fetch failure, browser failure, blocked page, missing record, or incomplete match produces a bounded diagnostic row when possible. It never invents a successful extraction. Evidence can be omitted with includeEvidence: false.
Local verification
pnpm --filter @junipr/product-spec-table-extractor buildpnpm --filter @junipr/product-spec-table-extractor testpnpm --filter @junipr/product-spec-table-extractor smoke
The tests cover strong, weak, unavailable, comparison, and cap fixtures; schema equality; pricing metadata; accepted/partial/limited charges; zero budget; and report generation.
Limitations
- Results reflect the public source at the scan time and may change later.
- Site markup changes can require selector/parser maintenance.
- The actor does not bypass authentication, CAPTCHAs, robots restrictions, or access controls.
- Legal, tax, pricing, SEO, merchandising, and marketplace decisions remain the user's responsibility.