5090法兰西有货了
要买的赶快。 爬库存的插件分享一下 皇冠3.0L 发表于 2025-6-26 16:58爬库存的插件分享一下
paly上搜 网页更新提醒
用了很久的 收货地址不包括我这..[睡觉] 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 = 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 = 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 =
await asyncio.gather(*tasks)
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
logging.info("手动中断🤚")
前俩天看了另一个老哥的帖子顺手写了个。用pushover发的通知,pushover需要自己搞定。 没海涛过 有点不敢买 这是要世界扫货? 法国佬真不给力,这搞不好库存可以持续一整天。 印度 英国 法国之前5090 FE 挂两周都还是in stock。。。 ts02147823 发表于 2025-6-26 17:39
印度 英国 法国之前5090 FE 挂两周都还是in stock。。。
这段时间天天在街头丢石头烟雾弹,可能没时间买显卡。 有老哥能告知一下5080 退税后是多少吗
DE地区也有库存了。 该买的都买了,法国佬对高端配件消费力比德国低一截。 德国能退税吗 本帖最后由 591280714 于 2025-6-26 19:45 编辑
买,撑死胆大的,饿死胆小的
还没卖完,看来货挺多[偷笑]
yunyuyue 发表于 2025-6-26 18:09
有老哥能告知一下5080 退税后是多少吗
[偷笑]
本帖最后由 litccc 于 2025-6-26 20:18 编辑
a010301208 发表于 2025-6-26 19:58
这是什么页面[震惊] 日本有货吗,好买吗 litccc 发表于 2025-6-26 20:15
这是什么页面
别激动,这是只税前价格的购物车[偷笑] a010301208 发表于 2025-6-26 20:17
别激动,这是只税前价格的购物车
刚下了一单,有点好奇为什么你的购物车看到的是税前价,我这里购物车是税后价 本帖最后由 591280714 于 2025-6-26 20:22 编辑
litccc 发表于 2025-6-26 20:20
刚下了一单,有点好奇为什么你的购物车看到的是税前价,我这里购物车是税后价 ...
他那只是显示,没区别,你就是进他那个页面,你付款的时候还是按你税后的价格付款。你要是好奇怎么操作的,点这里就行
litccc 发表于 2025-6-26 20:20
刚下了一单,有点好奇为什么你的购物车看到的是税前价,我这里购物车是税后价 ...
价格那里点击Voir le panier hors taxes切换[偷笑] a010301208 发表于 2025-6-26 19:58
5080退税后还要940跟国内咸鱼买差不多价格了 转运费加税加卡总计多少钱? yunyuyue 发表于 2025-6-26 21:16
5080退税后还要940跟国内咸鱼买差不多价格了
80肯定选国行,90是没办法[偷笑] 一直有库存,消费不给力啊。就这国内还搞这么高溢价。 用哪家转运靠谱? 我这都被砍单了 yuyuyu 发表于 2025-6-26 22:11
我这都被砍单了
为什么?
页:
[1]
2