AI token price comparison platform that scrapes and aggregates prices across multiple platforms to help users find cheap, reliable AI account tokens
triggers
["compare AI token prices","find cheap ChatGPT plus","scrape AI account prices","build price comparison for AI tokens","submit token vendor to aibijia","aggregate AI CDK prices","find reliable AI token resellers","price scraping multiple platforms"]
Aibijia is a multi-platform price scraping and comparison website for AI tokens (ChatGPT Plus CDKs, API keys, etc.). It aggregates prices from various resellers/agents across platforms, helping users find the cheapest reliable source and avoid scams.
import os
import asyncio
from telegram import Bot
asyncdefsend_price_alert(listings: list[dict], threshold: float):
"""
Send Telegram alert when ChatGPT Plus CDK drops below threshold price.
"""
bot = Bot(token=os.environ["TELEGRAM_BOT_TOKEN"])
channel = os.environ["TELEGRAM_CHANNEL_ID"]
cheap = [l for l in listings if l["price_cny"] <= threshold and l["in_stock"]]
ifnot cheap:
return
lines = [f"🔥 低价预警!ChatGPT Plus CDK ≤ ¥{threshold}\n"]
for l in cheap[:5]:
lines.append(f"• ¥{l['price_cny']} — {l['platform']}")
await bot.send_message(
chat_id=channel,
text="\n".join(lines),
disable_web_page_preview=True,
)
asyncio.run(send_price_alert(all_listings, threshold=30.0))
Common Patterns
Daily Cron Job (GitHub Actions)
# .github/workflows/scrape.ymlname:DailyPriceScrapeon:schedule:-cron:"0 2 * * *"# 2 AM UTC dailyworkflow_dispatch:jobs:scrape:runs-on:ubuntu-lateststeps:-uses:actions/checkout@v4-uses:actions/setup-python@v5with:python-version:"3.12"-run:pipinstall-rrequirements.txt-run:pythonscrapers/run_all.pyenv:TELEGRAM_BOT_TOKEN:${{secrets.TELEGRAM_BOT_TOKEN}}TELEGRAM_CHANNEL_ID:${{secrets.TELEGRAM_CHANNEL_ID}}-uses:actions/upload-artifact@v4with:name:price-datapath:data/
Troubleshooting
Problem
Cause
Fix
Scraper returns empty results
Target site changed HTML structure
Update CSS selectors in parse_prices()
403 / blocked requests
Bot detection on target platform
Add proxy via HTTP_PROXY env var or rotate User-Agent
Prices stale
Cron not running
Check GitHub Actions logs; run python scrapers/run_all.py manually
Telegram alerts not sending
Wrong token/channel
Verify TELEGRAM_BOT_TOKEN and TELEGRAM_CHANNEL_ID env vars
CDK already used / invalid
Upstream fraud
Report in repo issues with evidence; avoid that vendor
Anti-Bot Countermeasures
import time
import random
defpolite_get(session, url: str, min_delay=1.5, max_delay=4.0) -> str:
"""Add random delay between requests to avoid rate limiting."""
time.sleep(random.uniform(min_delay, max_delay))
resp = session.get(url, timeout=10)
resp.raise_for_status()
return resp.text
Contributing Price Sources
Fork the repo
Add your vendor/source to data/sources.json
Open a PR with evidence of reliability (screenshots, purchase history)
Community reviews and merges
// data/sources.json entry format{"id":"vendor_slug","name":"平台名称","url":"https://example-card-site.com","token_types":["ChatGPT Plus CDK","Claude API"],"verified":false,"submitted_by":"github_username","notes":"24h售后,微信群支持"}