Տեղադրել chromedp-ի ProxyServer-ը ExecAllocator-ի վրա
Ստեղծեք դիտարկիչի context-ը ProxyServer կրող ExecAllocator-ից, որպեսզի նախատեսված Chromium պրոցեսը ստանա իր proxy դրոշը։
chromedp.ProxyServer-ը դիտարկիչի գործարկման պարամետր է։ Կիրառեք այն allocator-ի վրա, որը ստեղծում է Chromium-ի պրոցեսը՝
opts := append(chromedp.DefaultExecAllocatorOptions[:],
chromedp.ProxyServer("http://proxy.example:8080"),
)
allocCtx, cancelAllocator := chromedp.NewExecAllocator(
context.Background(), opts...,
)
defer cancelAllocator()
tabCtx, cancelTab := chromedp.NewContext(allocCtx)
defer cancelTab()
err := chromedp.Run(tabCtx,
chromedp.Navigate("https://www.example.com/"),
)
Կոդը պետք է լինի հավելվածի գոյություն ունեցող ֆունկցիայում՝ err-ի համար սովորական սխալների մշակմամբ։ NewContext-ը allocator-ը ժառանգում է allocCtx-ից։ Այլ ծնողից ստեղծված context-ը կարող է ստեղծել այլ դիտարկիչ՝ առանց այդ պարամետրի։
proxy URL-ը նույնականացնում է HTTP լսող։ Հանրային թեկնածուները հասանելի են HTTP proxy ցանկում։ Էջը մնում է HTTPS նպատակակետ։ ProxyServer-ը քարտեզագրվում է Chromium-ի --proxy-server դրոշին, ոչ թե Go-ի net/http proxy կարգավորմանը։
Chromium-ը չի ընդունում ձեռքով տրված proxy URL-ում ներառված օգտանուն և գաղտնաբառ։ Նույնականացված ծայրակետին անհրաժեշտ է աջակցվող դիտարկիչի նույնականացում կամ միջնորդային լուծում։ user:password-ը այս դրոշին ավելացնելը համարժեք չէ HTTP client-ի URL նույնականացմանը։ Chrome-ի CDP նույնականացման իրադարձությունների հոսքը աջակցվող ուղիներից մեկն է նախատեսված proxy մարտահրավերը լուծելու համար։
allocator-ը պահեք կենդանի, մինչև դիտարկիչի աշխատանքը ավարտվի։ Դրա չեղարկումը նույնպես պրոցեսի մաքրման մասն է, մինչդեռ ներդիրի չեղարկումը սահմանափակում է կապված դիտարկիչի context-ը։