დააყენეთ 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 კლიენტის URL ავთენტიფიკაციას. Chrome-ის CDP ავთენტიფიკაციის მოვლენების ნაკადი განზრახული proxy გამოწვევის დასამუშავებლად მხარდაჭერილი გზებიდან ერთია.
შეინარჩუნეთ allocator ცოცხალი, სანამ ბრაუზერის სამუშაო დასრულდება. მისი გაუქმებაც პროცესის გასუფთავების ნაწილია, ხოლო ჩანართის გაუქმება შესაბამის ბრაუზერის context-ს ზღუდავს.