找回密码
 加入我们
搜索
      
查看: 3182|回复: 47

[显卡] 5090法兰西有货了

[复制链接]
发表于 2025-6-26 16:54 来自手机 | 显示全部楼层 |阅读模式
要买的赶快。
IMG_0220.png
发表于 2025-6-26 16:58 | 显示全部楼层
爬库存的插件分享一下
发表于 2025-6-26 17:06 | 显示全部楼层
皇冠3.0L 发表于 2025-6-26 16:58
爬库存的插件分享一下

paly上搜 网页更新提醒
用了很久的
发表于 2025-6-26 17:07 | 显示全部楼层
收货地址不包括我这..
 楼主| 发表于 2025-6-26 17:11 | 显示全部楼层
import asyncio
import logging
from typing import List, Optional

import httpx
from pydantic import BaseModel, Field, ValidationError

# 基本配置
CHECK_INTERVAL_SECONDS = 60
STOCK_URLS = [
    "https://api.store.nvidia.com/partner/v1/feinventory?status=1&skus=LCFEGF50LD90&locale=fr-fr",
    "https://api.store.nvidia.com/partner/v1/feinventory?status=1&skus=PROFESHOP5090&locale=de-de",
]


# 日志配置
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
)


# 响应模型
class ListItem(BaseModel):
    is_active: bool
    product_url: Optional[str] = None
    price: str
    fe_sku: str
    locale: str

    def to_message(self) -> str:
        """ "转换为通知消息"""
        return (
            f"SKU: {self.fe_sku}\n"
            f"价格: {self.price}\n"
            f"状态: {'有库存' if self.is_active else '无库存'}\n"
            f"库存链接: {self.product_url or '无链接'}\n"
            f"库存地区: {self.locale}"
        )

    async def send_notification(self):
        """发送通知"""
        try:
            response = httpx.post(
                "https://api.pushover.net:443/1/messages.json",
                data={
                    "token": "XXXXXXXXXXXXX",
                    "user": "YYYYYYYYYYYYY",
                    "message": f"发现新库存:\n{self.to_message()}",
                },
            )
            response.raise_for_status()
        except Exception as e:
            logging.error(f"发送通知时发生错误: {e}")


class APIResponse(BaseModel):
    success: bool
    list_map: List[ListItem] = Field(alias="listMap")


async def check_stock(url: str):
    """检查库存"""
    async with httpx.AsyncClient(timeout=10.0) as client:
        while True:
            logging.info(f"检查库存: {url}")
            try:
                headers = {
                    "Accept": "*/*",
                    "Accept-Encoding": "gzip, deflate, br, zstd",
                    "Accept-Language": "zh-CN,zh-TW;q=0.9,zh;q=0.8,en;q=0.7",
                    "Origin": "https://marketplace.nvidia.com",
                    "Referer": "https://marketplace.nvidia.com/",
                    "Sec-Fetch-Dest": "empty",
                    "Sec-Fetch-Mode": "cors",
                    "Sec-Fetch-Site": "same-site",
                    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
                }
                response = await client.get(url, headers=headers)
                response.raise_for_status()
                data = APIResponse.model_validate(response.json())

                if not data.list_map:
                    logging.warning(f"响应数据错误:{data.model_dump_json()}")
                else:
                    for product in data.list_map:
                        if product.is_active:
                            logging.info("发现新库存😊")
                            await product.send_notification()
                    if not any(item.is_active for item in data.list_map):
                        logging.info("没有库存😭")
            except Exception as e:
                logging.error(f"发生未知错误: {e}")

            logging.info(f"等待 {CHECK_INTERVAL_SECONDS} 秒后进行下一次检查...")
            await asyncio.sleep(CHECK_INTERVAL_SECONDS)

async def main():
    """主函数"""
    tasks = [check_stock(url) for url in STOCK_URLS]
    await asyncio.gather(*tasks)

if __name__ == "__main__":
    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        logging.info("手动中断🤚")




前俩天看了另一个老哥的帖子顺手写了个。用pushover发的通知,pushover需要自己搞定。
发表于 2025-6-26 17:33 | 显示全部楼层
没海涛过 有点不敢买  
发表于 2025-6-26 17:34 来自手机 | 显示全部楼层
这是要世界扫货?
发表于 2025-6-26 17:36 | 显示全部楼层
法国佬真不给力,这搞不好库存可以持续一整天。
发表于 2025-6-26 17:39 | 显示全部楼层
印度 英国 法国之前5090 FE 挂两周都还是in stock。。。
发表于 2025-6-26 17:44 | 显示全部楼层
ts02147823 发表于 2025-6-26 17:39
印度 英国 法国之前5090 FE 挂两周都还是in stock。。。

这段时间天天在街头丢石头烟雾弹,可能没时间买显卡。
发表于 2025-6-26 18:09 | 显示全部楼层
有老哥能告知一下  5080 退税后是多少吗
 楼主| 发表于 2025-6-26 18:15 来自手机 | 显示全部楼层
DE地区也有库存了。
发表于 2025-6-26 19:09 | 显示全部楼层
该买的都买了,法国佬对高端配件消费力比德国低一截。
发表于 2025-6-26 19:31 来自手机 | 显示全部楼层
德国能退税吗
发表于 2025-6-26 19:44 | 显示全部楼层
本帖最后由 591280714 于 2025-6-26 19:45 编辑

买,撑死胆大的,饿死胆小的
D16MQ][){6U1[GN]T[S`J2D.png
发表于 2025-6-26 19:54 | 显示全部楼层
还没卖完,看来货挺多

NV 90.jpg
发表于 2025-6-26 19:58 | 显示全部楼层
yunyuyue 发表于 2025-6-26 18:09
有老哥能告知一下  5080 退税后是多少吗



nv 80 90.png
发表于 2025-6-26 20:15 | 显示全部楼层
本帖最后由 litccc 于 2025-6-26 20:18 编辑


这是什么页面
发表于 2025-6-26 20:16 | 显示全部楼层
日本有货吗,好买吗
发表于 2025-6-26 20:17 | 显示全部楼层


别激动,这是只税前价格的购物车
发表于 2025-6-26 20:20 | 显示全部楼层
a010301208 发表于 2025-6-26 20:17
别激动,这是只税前价格的购物车


QQ20250626-201949.png
刚下了一单,有点好奇为什么你的购物车看到的是税前价,我这里购物车是税后价
发表于 2025-6-26 20:21 | 显示全部楼层
本帖最后由 591280714 于 2025-6-26 20:22 编辑
litccc 发表于 2025-6-26 20:20
刚下了一单,有点好奇为什么你的购物车看到的是税前价,我这里购物车是税后价 ...


他那只是显示,没区别,你就是进他那个页面,你付款的时候还是按你税后的价格付款。你要是好奇怎么操作的,点这里就行
MVX`R9V4@93VJ6``QZ69[A0.png
发表于 2025-6-26 20:21 | 显示全部楼层
litccc 发表于 2025-6-26 20:20
刚下了一单,有点好奇为什么你的购物车看到的是税前价,我这里购物车是税后价 ...


价格那里点击Voir le panier hors taxes切换
发表于 2025-6-26 21:16 | 显示全部楼层

5080退税后还要940  跟国内咸鱼买差不多价格了
发表于 2025-6-26 21:30 | 显示全部楼层
转运费加税加卡总计多少钱?
发表于 2025-6-26 21:37 | 显示全部楼层
yunyuyue 发表于 2025-6-26 21:16
5080退税后还要940  跟国内咸鱼买差不多价格了

80肯定选国行,90是没办法
 楼主| 发表于 2025-6-26 21:43 来自手机 | 显示全部楼层
一直有库存,消费不给力啊。就这国内还搞这么高溢价。
发表于 2025-6-26 22:07 | 显示全部楼层
用哪家转运靠谱?
发表于 2025-6-26 22:11 | 显示全部楼层
我这都被砍单了
1da623f4-0bdc-463d-924b-110a0e152d90.png
发表于 2025-6-26 22:19 | 显示全部楼层
yuyuyu 发表于 2025-6-26 22:11
我这都被砍单了

为什么?
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-6-27 23:38 , Processed in 0.012683 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表