@taskmagic/apps-bestbuy
v0.0.1
Published
Browser-automation piece for TaskMagic. Runs inside the logged-in desktop Chrome session (Puppeteer) and scrapes Best Buy search results.
Downloads
83
Readme
Best Buy (Browser)
Browser-automation piece for TaskMagic. Runs inside the logged-in desktop Chrome session (Puppeteer) and scrapes Best Buy search results.
Actions
Search Products
Searches bestbuy.com for a query and returns the result cards.
Props
query(required) — search term (e.g.laptop) or a full Best Buy search URL.maxResults(optional, default 18, max 500) — paginates 18 results/page.
Output (BestBuySearchResult)
{
"query": "laptop",
"search_url": "https://www.bestbuy.com/site/searchpage.jsp?st=laptop&cp=1",
"count": 36,
"done": true,
"total_items": 7609,
"last_page": 2,
"rows": [
{
"sku": "6667474",
"name": "HP - 14\" Laptop - Intel N150 Processor - 4GB Memory - 128GB UFS - Natural Silver",
"product_url": "https://www.bestbuy.com/product/hp-14-laptop-…/JJGW3FGFPZ",
"image_url": "https://pisces.bbystatic.com/…",
"price": 249.99,
"regular_price": 299.99,
"rating": 4.6,
"review_count": 128
}
],
"error": null
}How it works
Best Buy search is a client-rendered SPA whose results list is virtualized:
each card exposes its SKU (data-product-id) immediately, but the
title/price/rating subtree only mounts while the card is near the viewport.
There is no replayable JSON search XHR — pagination is a full navigation via the
cp query param, and the embedded data is a persisted-query Apollo GraphQL blob.
So the action navigates to each cp page and harvests the live DOM while
autoscrolling, deduping rows by SKU, until it reaches maxResults, runs out of
new rows, or passes the last page (reported by .pagination-num-found).
See builds/recipes/bestbuy-search.yaml and
builds/captures/capture-bestbuy-search.md for the full capture + recipe.
Notes
- No authentication required (public search). The desktop Chrome session's cookies ride along automatically.
v1logging (lib/common/log.ts) prints[bestbuy:search_products]lines for Test-step inspection. Remove or gate behind a debug flag once verified.- Scraping is subject to Best Buy's Terms of Service and rate limits; the action inserts delays between pages and scroll steps.
