Wariant 1: wybielanie IP (zalecane dla serwerów)#
Prześlij rzeczywisty wychodzący publiczny adres IPv4 serwera w programie Access i poczekaj na aktywację administratora. NAT lub VPN mogą zmienić adres widziany przez bramę. Dostęp bez hasła działa dopiero po zatwierdzeniu wpisu dla przypisanej usługi. Potwierdź osobno opcje kraju i sesji; lista dozwolonych adresów IP źródła nie wysyła parametrów nazwy użytkownika. Białas
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.add_argument("--proxy-server=http://res.proxy-cyber.com:9000")
opts.add_argument("--headless=new")
driver = webdriver.Chrome(options=opts)
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()Opcja 2: uwierzytelnianie WebDriver BiDi #
W przykładzie wykorzystano utrzymywany przez Selenium interfejs API WebDriver BiDi z opcjami Enable_bidi i network.add_auth_handler. Przetestuj wyzwanie serwera proxy HTTP z zainstalowaną przeglądarką i sterownikiem przed użyciem go w zadaniu. Procedura obsługi nie jest ograniczona do jednego hosta, dlatego należy używać izolowanej sesji przeglądarki bez niepowiązanych monitów o uwierzytelnienie. Jeśli uwierzytelnianie proxy nie jest obsługiwane w Twojej kombinacji wersji, użyj aktywowanej listy dozwolonych adresów IP.
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.enable_bidi = True
options.add_argument("--proxy-server=" + os.environ["PROXY_SERVER"])
with webdriver.Chrome(options=options) as driver:
handler = driver.network.add_auth_handler(
os.environ["PROXY_USER"], os.environ["PROXY_PASSWORD"]
)
try:
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
finally:
driver.network.remove_auth_handler(handler)Firefox#
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
opts = Options()
opts.set_preference("network.proxy.type", 1)
opts.set_preference("network.proxy.http", "res.proxy-cyber.com")
opts.set_preference("network.proxy.http_port", 9000)
opts.set_preference("network.proxy.ssl", "res.proxy-cyber.com")
opts.set_preference("network.proxy.ssl_port", 9000)
opts.set_preference("media.peerconnection.enabled", False) # no WebRTC leak
driver = webdriver.Firefox(options=opts) # whitelisted server, no promptZasady praktyczne#
- Użyj odrębnego identyfikatora sesji dla każdego niezależnego przepływu pracy, jeśli obsługuje go przypisana brama. Potwierdź dozwolony czas trwania i parametry lokalizacji w szczegółach połączenia. Urządzenie domowe może odłączyć się przed żądanym czasem trwania; sesja lepka nie gwarantuje tego samego adresu IP przez kilka dni. Aby uzyskać stały adres, porównaj dedykowany produkt statyczny.
- Stosowanie
--headless=neww Chrome; stary tryb bezgłowy ma charakterystyczny odcisk palca. - Oddzielne identyfikatory sesji izolują preferencje routingu, a nie pliki cookie przeglądarki lub stan aplikacji. Zacznij od małej liczby pracowników, mierz błędy i ruch i stopniowo zwiększaj w ramach limitów potwierdzonych dla Twojego zamówienia i miejsca docelowego. Wąski wybór miasta lub operatora może zmniejszyć dostępną przepustowość.
Pytania, które ludzie zadają#
Dlaczego Chrome pokazuje proxy logowania z Selenium?
Użyj aktywowanej listy dozwolonych źródłowych adresów IP dla stałego serwera lub przetestuj bieżący moduł uwierzytelniania BiDi WebDriver Selenium w zainstalowanej przeglądarce. Nie polegaj na zarchiwizowanej instalacji Selenium Wire w przypadku nowej integracji.