24 行
1.1 KiB
Python
24 行
1.1 KiB
Python
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())
|