Add Puppeteer browser scraping and HG Spot store config

- Add browser-scraper.ts using Puppeteer for JS-heavy stores
- Add render_js flag to store model, migration, YAML sync, and UI
- Scraper engine auto-selects cheerio vs Puppeteer based on flag
- Store forms include JS rendering toggle in Advanced section
- Create first store config: HG Spot (Croatian electronics retailer)
- Update Dockerfile with Chromium for production Puppeteer support

Tested: HG Spot returns 15 products per page with correct names,
prices (EUR), links, and images using headless browser rendering.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
mariosemes
2026-03-26 21:36:20 +01:00
parent 97fb8d9663
commit 130ab30fcc
13 changed files with 1037 additions and 39 deletions

14
stores/hgspot.yaml Normal file
View File

@@ -0,0 +1,14 @@
name: HG Spot
base_url: https://www.hgspot.hr
search_url: https://www.hgspot.hr/pretraga?q={query}&page=0
category: Electronics
currency: EUR
render_js: true
rate_limit: 1
selectors:
container: "section.product-container-comm"
name: "h2.product-name"
price: "div.product-price"
link: "h2.product-name a"
image: ".product-image img"