Python爬取京东商品库存数据与价格监控

核心思路 :通过定时爬取商品库存和价格,实现价格波动监控和缺货预警。
技术实现

  1. 库存接口 :调用https://c0.3.cn/stock?skuId={sku_id}获取库存状态。
  2. 定时任务 :使用APScheduler库设置每小时执行一次爬取任务。
  3. 数据存储 :将结果存入SQLite数据库,便于历史查询。
    示例代码

python

复制代码
`import requests, sqlite3, time
from apscheduler.schedulers.blocking import BlockingScheduler

def get_stock(sku_id):
    url = f"https://c0.3.cn/stock?skuId={sku_id}"
    response = requests.get(url)
    return response.json()["stock"]["StockStateName"]

def monitor_product(sku_id):
    conn = sqlite3.connect("jd_monitor.db")
    cursor = conn.cursor()
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS monitor (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            sku_id TEXT,
            price TEXT,
            stock TEXT,
            timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
        )
    """)

    price_url = f"https://p.3.cn/prices/mgets?skuIds=J_{sku_id}"
    price = requests.get(price_url).json()[0]["p"]
    stock = get_stock(sku_id)

    cursor.execute(
        "INSERT INTO monitor (sku_id, price, stock) VALUES (?, ?, ?)",
        (sku_id, price, stock)
    )
    conn.commit()
    conn.close()
    print(f"Monitored {sku_id}: Price={price}, Stock={stock}")

# 设置定时任务
scheduler = BlockingScheduler()
scheduler.add_job(lambda: monitor_product("100000000001"), "interval", hours=1)
scheduler.start()`
相关推荐
悟空爬虫1 小时前
UV实战教程,我啥要从Anaconda切换到uv来管理包?
python
dev派1 小时前
AI Agent 系统中的常用 Workflow 模式(1)
python·langchain
明月_清风3 小时前
从“能用”到“专业”:构建生产级装饰器与三层逻辑拆解
后端·python
曲幽13 小时前
数据库实战:FastAPI + SQLAlchemy 2.0 + Alembic 从零搭建,踩坑实录
python·fastapi·web·sqlalchemy·db·asyncio·alembic
用户83562907805117 小时前
Python 实现 PowerPoint 形状动画设置
后端·python
ponponon19 小时前
时代的眼泪,nameko 和 eventlet 停止维护后的项目自救,升级和替代之路
python
Flittly19 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(5)Skills (技能加载)
python·agent
敏编程19 小时前
一天一个Python库:pyarrow - 大规模数据处理的利器
python
Flittly21 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(4)Subagents (子智能体)
python·agent
明月_清风1 天前
Python 装饰器前传:如果不懂“闭包”,你只是在复刻代码
后端·python