--proxy-server içinde kimlik bilgileri
Chrome kullanıcı adını ve parolayı bu argümandan hata vermeden atar, onlarsız bağlanır ve proxy'den 407 alır. Sayfa da yüklenmez; bu durum bir kimlik doğrulama sorunu gibi değil, bir ağ sorunu gibi görünür.
Selenium altındaki Chrome ya da Firefox'u tek bir statik ISP adresi üzerinden çalıştırın. Bu sayfadaki her örnek yayımlanmadan önce yerel bir proxy'ye karşı çalıştırıldı ve neyin çalışmadığı açıkça yazıldı.
Kısacası: Chrome’da
--proxy-server=http://HOST:PORTdeğerini argüman olarak verin; Firefox’ta seçeneklere elle bir Proxy ayarlayın. Firefox, proxy’nin parola isteğini Selenium’un WebDriver BiDi işleyicisiadd_authentication_handlerile yanıtlayabilir. Chrome bizim testimizde bunu yapamadı:--proxy-serveriçindeki kimlik bilgilerini yok sayıyor ve iki BiDi işleyicisi de zaman aşımına uğradı. Chrome için testlerinizin çalıştığı IP’yi proxy’nin beyaz listesine ekleyin; proxy HTTP ya da SOCKS5 üzerinden kimlik bilgisi istemez.
Selenium trafiği kendisi yönlendirmez: bir tarayıcı başlatır ve proxy’yi tarayıcının seçeneklerinin bir parçası olarak ona verir. Yanıtın Chrome ile Firefox arasında farklı olmasının ve kurulumların çoğunun proxy kimlik doğrulamasında takılmasının nedeni budur.
Chrome proxy’yi bir komut satırı anahtarından, Firefox ise seçeneklerindeki bir proxy nesnesinden okur. İkisi de beyaz listeli bir proxy’yi başka bir kurulum gerektirmeden kabul eder; Firefox ayrıca proxy’nin parola isteğini WebDriver BiDi ile yanıtlayabilir, Chrome ise bunu testimizde yapmadı.
Makinenin ya da CI çalıştırıcısının yerel adresi değil, internetin gördüğü adresi. What Is My IP bunu gösterir.
Tek bir API çağrısı, PUT /orders/ORDER_ID/whitelist, ya da MCP sunucusunun set_proxy_whitelist aracı; panelde henüz bunun için bir ayar yok. Beyaz liste IPv4 adresleri alır ve her seferinde listenin yerini alır. Beyaz liste ayarlıyken proxy yalnızca listedeki adresleri kabul eder ve o sipariş için kullanıcı adı ile parola çalışmaz; boş bir liste gönderdiğinizde beyaz liste kapanır ve parolayla giriş yeniden çalışır.
Proxylerim bölümünden ya da API’den. Beyaz liste yerindeyken kullanıcı adı ve parola gerekmez.
Chrome: --proxy-server=http://HOST:PORT ya da proxy’yi SOCKS5’e geçirdikten sonra socks5://HOST:PORT. Firefox: httpProxy ve sslProxy ile elle ayarlanmış bir Proxy.
Selenium’un yönettiği tarayıcıda What Is My IP sayfasını bir kez yükleyin ve satın aldığınız adresi gösterdiğini doğrulayın, ardından test paketini çalıştırın.
# The proxy has your machine's IP on its whitelist, so no credentials
# are sent: Chrome ignores them in --proxy-server anyway.
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless=new") # remove to watch the browser
options.add_argument("--proxy-server=http://HOST:PORT")
driver = webdriver.Chrome(options=options)
try:
driver.get("https://example.com/")
print(driver.title)
finally:
driver.quit()
# Selenium 4.51+ with WebDriver BiDi; pip install selenium
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
options = webdriver.FirefoxOptions()
options.enable_bidi = True
options.add_argument("-headless") # remove to watch the browser
options.proxy = Proxy({
"proxyType": ProxyType.MANUAL,
"httpProxy": "HOST:PORT",
"sslProxy": "HOST:PORT",
})
driver = webdriver.Firefox(options=options)
try:
# Answers the proxy's 407 with your username and password
driver.network.add_authentication_handler(
lambda request: request.provide_credentials("USERNAME", "PASSWORD")
)
driver.get("https://example.com/")
print(driver.title)
finally:
driver.quit()
# The proxy has your machine's IP on its whitelist, so no credentials
# are sent. For a password instead, see selenium-firefox-auth.
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
options = webdriver.FirefoxOptions()
options.add_argument("-headless") # remove to watch the browser
options.proxy = Proxy({
"proxyType": ProxyType.MANUAL,
"httpProxy": "HOST:PORT",
"sslProxy": "HOST:PORT",
})
driver = webdriver.Firefox(options=options)
try:
driver.get("https://example.com/")
print(driver.title)
finally:
driver.quit()
# Switch the proxy to SOCKS5 first, then use the port the order shows.
# The whitelist applies to SOCKS5 as well, so no credentials here either.
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless=new") # remove to watch the browser
options.add_argument("--proxy-server=socks5://HOST:PORT")
driver = webdriver.Chrome(options=options)
try:
driver.get("https://example.com/")
print(driver.title)
finally:
driver.quit()
# Put the public IPv4 address your code runs from on the proxy's
# whitelist. Replaces the list; an empty list turns whitelisting off
# and the proxy falls back to username and password.
curl -X PUT "https://api.proxyjam.com/public/v1/orders/ORDER_ID/whitelist" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"whitelisted_ips": ["YOUR_IP"]}'
Firefox parola örneği bir kullanıcı adı ve parola gönderir, bu yüzden beyaz listesi ayarlanmamış bir sipariş gerektirir. Diğer tarayıcı örnekleri makinenizin IP'sinin proxy'nin beyaz listesinde olduğunu varsayar; SOCKS5 örneği ayrıca önce proxy'nin SOCKS5'e geçirilmesini gerektirir ve bu yeni bir port verir. Büyük harfle yazılmış değerleri siparişinizin değerleriyle, beyaz liste çağrısındaki ORDER_ID, YOUR_API_KEY ve YOUR_IP değerlerini de kendi değerlerinizle değiştirin.
| HTTP proxy | SOCKS5 proxy | Kullanıcı adı ve parola | |
|---|---|---|---|
| Chrome | --proxy-server=http://HOST:PORT | --proxy-server=socks5://HOST:PORT | --proxy-server içinde yok sayılır; beyaz listeyi kullanın |
| Firefox | httpProxy ve sslProxy ile Proxy | socksProxy ve socksVersion 5 ile Proxy | HTTP üzerinden add_authentication_handler (BiDi) ile çalıştı |
| Chrome, BiDi işleyicileri | add_auth_handler ve add_authentication_handler ikisi de zaman aşımına uğradı | Test edilmedi | Sonraki bir Selenium ya da Chrome sürümü bunu değiştirene kadar beyaz listeyi kullanın |
Chrome kullanıcı adını ve parolayı bu argümandan hata vermeden atar, onlarsız bağlanır ve proxy'den 407 alır. Sayfa da yüklenmez; bu durum bir kimlik doğrulama sorunu gibi değil, bir ağ sorunu gibi görünür.
Firefox seçeneklerinde bir proxy varsa Selenium Manager sürücüyü aynı proxy üzerinden indirir. Yalnızca parolalı bir proxy ile bu indirme tarayıcı başlamadan başarısız olur; beyaz listeyle başarılı olur.
Bir CI çalıştırıcısı çoğu zaman dizüstü bilgisayarınızdan farklı bir genel IP'den çıkar ve bazıları çalıştırmalar arasında değişir. Testlerin çalıştığı adresi beyaz listeye ekleyin ve bu adres değiştiğinde güncelleyin, çünkü her çağrı listenin yerini alır.
HTTP'ye ayarlı bir adres SOCKS5'e yanıt vermez. Önce siparişinizde proxy'yi geçirin ve ardından gösterilen portu kullanın; yalnızca argümandaki şemayı değiştirmek, bağlanamayan bir tarayıcı verir.
Firefox'ta WebDriver BiDi'yi etkinleştirin ve kullanıcı adı ile parolayı sağlayan bir işleyiciyi driver.network.add_authentication_handler ile kaydedin; bu, Selenium 4.51 ile çalıştı. Chrome'da testimizde kimlik bilgisi gönderen hiçbir yöntem çalışmadı: proxy anahtarındaki kimlik bilgilerini yok sayıyor ve iki BiDi işleyicisi de zaman aşımına uğradı. Chrome için testlerinizin çalıştığı genel IP'yi beyaz listeye ekleyin; tarayıcı hiçbir kimlik bilgisi olmadan bağlanır.
ChromeOptions oluşturun, --proxy-server=http://HOST:PORT argümanını ekleyin ve seçenekleri webdriver.Chrome'a verin. SOCKS5 için siparişinizde proxy'yi SOCKS5'e geçirin ve siparişin ardından gösterdiği portla socks5://HOST:PORT kullanın.
Evet. Beyaz listedeki bir adres HTTP ve SOCKS5 üzerinden kimlik bilgisi olmadan kabul edilir ve SOCKS5'i Chrome'dan kullanılabilir yapan da budur, çünkü Chrome bir SOCKS5 kullanıcı adı ve parolası gönderemez. Beyaz liste API ya da MCP sunucusu üzerinden ayarlanır ve IPv4 adresleri alır. SOCKS5
Evet, sürücü başına bir tane: proxy, bir sürücünün başlarken aldığı seçeneklerin bir parçasıdır, bu yüzden iki sürücü iki adres kullanabilir. Çalışan bir Chrome'un proxy'sini değiştirmek mümkün değildir; bunun yerine yeni bir sürücü başlatın.
Değiştirmez. Sürücü, kapanana kadar başladığı adresi korur ve adresin kendisi de fatura döneminin tamamı boyunca size atanmış kalır. Aynı anda çok sayıda çıkış noktası gerektiren paketler bunları değiştiren bir havuza ihtiyaç duyar ve o henüz satışta değil.
Kendi ürününüzün uçtan uca testleri, mağazanızın bölgesel kontrolleri, reklam doğrulama, fiyat araştırması ve marka koruma, kabul edilebilir kullanım politikamıza göre önceden inceleme olmadan çalışır. CAPTCHA'ları, bot savunmalarını, istek sınırlarını ya da hesap yasaklarını aşmak için bir tarayıcı yönetmek başka bir konudur: adres bunu yapmaz ve politika bunu denemeyi yasaklar. Kabul Edilebilir Kullanım Politikası
--proxy-server anahtarı ve şemaları