Το 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 που δημιουργείται από άλλο γονέα μπορεί να δημιουργήσει διαφορετικό πρόγραμμα περιήγησης χωρίς αυτή την επιλογή.

Το URL του proxy προσδιορίζει έναν ακροατή HTTP· δημόσιοι υποψήφιοι υπάρχουν στη λίστα proxy HTTP· η σελίδα παραμένει προορισμός HTTPS. Το ProxyServer αντιστοιχεί στη σημαία --proxy-server του Chromium, όχι στη ρύθμιση proxy του net/http της Go.

Το Chromium δεν δέχεται όνομα χρήστη και κωδικό πρόσβασης ενσωματωμένα σε χειροκίνητο URL proxy. Ένα endpoint με έλεγχο ταυτότητας χρειάζεται υποστηριζόμενη πιστοποίηση προγράμματος περιήγησης ή ενδιάμεση λύση· η προσθήκη user:password σε αυτή τη σημαία δεν ισοδυναμεί με πιστοποίηση URL σε HTTP client. Η ροή συμβάντων πιστοποίησης CDP του Chrome είναι ένας υποστηριζόμενος τρόπος για τη διαχείριση της επιδιωκόμενης πρόκλησης proxy.

Κρατήστε τον allocator ζωντανό μέχρι να ολοκληρωθεί η εργασία του προγράμματος περιήγησης. Η ακύρωσή του ανήκει επίσης στον καθαρισμό της διεργασίας, ενώ η ακύρωση της καρτέλας περιορίζει το σχετικό context του προγράμματος περιήγησης.

Σχετικά άρθρα