360 Secure SkillHub
360 安全技能中心

Geizhals.at

该 Skill 仅面向奥地利 Geizhals.at:先用 HTTP 调用自动补全接口获取候选商品,再抓取详情页解析最低价格、店铺、报价数量和价格置信度,输出带 schema_version 的 JSON 记录。不使用浏览器自动化或 JS 执行,属非官方尽力而为的抓取,页面结构变化可能导致提取失败。

rolandkakonyi
rolandkakonyi
热度 73.46
最近更新 2026-05-11 17:26:07
分类:搜索依赖:代码执行 / 第三方 API / 读写文件应用场景:购物 / 研究 / 推荐

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add geizhals-at
Metadata
name
geizhals-at
description
Search Geizhals.at (Austria) with HTTP-only autocomplete + detail-page parsing (no browser automation). Use when users want quick price checks from Geizhals.at and accept unofficial/best-effort scraping limits.

geizhals-at

Geizhals-only lookup skill (Austria) using plain HTTP.

Behavior

  • Query Geizhals autocomplete endpoint (/acs) for product candidates.
  • Fetch top candidate detail pages.
  • Extract:
    • min_price_eur
    • shop
    • offer_count
    • price_confidence + price_source
  • Return stable JSON records with schema_version.

Constraints

  • No browser automation.
  • No JS execution.
  • Unofficial integration: HTML patterns can change and break extraction.
  • Keep request volume low.

Usage

Run commands from the geizhals-at skill directory.

uv first:

uv run scripts/geizhals.py search "iphone 15" --limit 5

JSON output:

uv run scripts/geizhals.py search "mac mini" --limit 5 --json

Debug + explicit cache dir:

uv run scripts/geizhals.py search "bosch akkuschrauber" --limit 5 --json --debug --cache-dir /tmp/geizhals-cache

Fallback without uv:

python3 scripts/geizhals.py search "iphone 15" --limit 5

Output contract

Each result includes:

  • schema_version (currently 1.0)
  • name
  • detail_url
  • min_price_eur (nullable)
  • shop (nullable)
  • offer_count (nullable)
  • price_confidence: high|medium|low|unknown
  • price_source: embedded_offer_raw_price|meta_product_price|title_ab_price|none
  • error (nullable)

Testing

Run parser tests from the skill directory:

uv run --with pytest python -m pytest tests/test_parsers.py

Fallback:

python3 -m pytest tests/test_parsers.py

Fixtures live in tests/fixtures/.

Known limitations

  • Results are Geizhals-only by design.
  • Some products may miss a shop or exact cheapest offer if page structure changes.
  • If Geizhals rate-limits, the script retries with exponential backoff but can still fail.