メインコンテンツまでスキップ

Sample: Poller と安値ウォッチ

単純ポーラー

PollerConfig の間隔フィールドは interval(秒)です。
state_path / log_path を省略すると ~/android-re/workspace/mercari_search/poller_data/ 配下に保存されます。

from pathlib import Path
from mercari import MercariSearchPoller, PollerConfig

data = Path("./poller_data")
cfg = PollerConfig(
keyword="iPhone 13",
category_id=3833, # int または [3833] のどちらでも可
interval=5.0, # seconds between polls
dry_run=True, # ライブは dry_run=False
state_path=str(data / "state.json"),
log_path=str(data / "polls.jsonl"),
)
p = MercariSearchPoller(cfg)

def on_new(items, meta):
for it in items:
print("NEW", it.get("price"), it.get("name"))

p.on_new_items = on_new
p.poll_once()
python examples/13_poll_every_5s.py
python -m mercari.poller --once --dry-run -c 3833

メソッド合成(推奨パターン)

売切込みで相場 → 出品中を見て安いもの → Webhook。

# examples/18_compose_cheap_webhook.py 先頭の WEBHOOK_URL を編集
python examples/18_compose_cheap_webhook.py --once

SOUBA ポーラ

# data/souba.json の name/pattern/price に対して
python examples/22_souba_poller.py --once
  • マッチ条件: タイトルが pattern に合い、価格が SOUBA.price 以下(等号含む)
  • オークション出品はスキップ

DealWatcher

python examples/17_cheap_to_webhook.py --once --dry-run