BOM:R2 物料清单与淘宝 / 立创比价(表格 + 抓价脚本与数据)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
zhou yang
2026-10-04 19:24:42 +08:00
共同撰写人 Claude Opus 5.5
父节点 bfe094a5d7
当前提交 22a255acd7
共修改 19 个文件,包含 39549 行新增和 0 行删除
+23
查看文件
@@ -0,0 +1,23 @@
import asyncio,json,re
import cdp
exec(open('visit.py',encoding='utf-8').read().split('async def main')[0])
FIX={'C43473':['0402 22.1K 1% 100个'],'C6186':['AMS1117-3.3'],'C2847671':['KF2510 直针 4P','【50只】'],
'C50951':['2.54mm_1*5P_直针_铜(10只)'],'C310998':['63V/2A(10只)'],'C5221288':['3.5MM 贴片式【20个】']}
D=json.load(open('cost_detail.json',encoding='utf-8'))
async def main():
ws=await cdp.open_ws()
for n,(k,skus) in enumerate(FIX.items()):
if n: await asyncio.sleep(30)
await cdp.send(ws,'Page.navigate',{'url':D[k]['url']})
for i in range(20):
await asyncio.sleep(1)
if await cdp.ev(ws,SKUJS): break
ok=[]
for s in skus:
ok.append(await cdp.ev(ws,'('+CLICK+')('+json.dumps(s)+')')); await asyncio.sleep(1.5)
txt=await cdp.ev(ws,'document.body.innerText') or ''
pr=parse_price(txt,D[k]['title'] or '')
D[k].update(chosen=skus,price=pr,fixed=True,click_ok=ok)
print(k,skus,ok,pr,flush=True)
json.dump(D,open('cost_detail.json','w',encoding='utf-8'),ensure_ascii=False,indent=1)
asyncio.run(main())