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())