Когда я использую Playwright для доступа к целевому веб-сайту через этот прокси-сервер, прокси-сервер получает пустой заголовок Proxy-Authorization, и доступ к веб-сайту невозможен, поскольку аутентификация прокси-сервера не удалась. Согласно документации Playwright, она поддерживает прокси-аутентификацию, прокси-аутентификация должна поддерживаться.
Интересно, что когда я тестирую с помощью WebKit, прокси-аутентификация работает должным образом, но не работает с Chromium.
Кто-нибудь сталкивался с этой проблемой или знает, как ее решить? Есть ли способ заставить прокси-аутентификацию работать с Playwright и Chromium?
Спасибо за помощь!
мой тестовый код:
Код: Выделить всё
from playwright.sync_api import sync_playwright
import subprocess
import os
# My Proxy
server = "http://127.0.0.1:8000"
password = "abcdef"
username = "123456"
dst_url="http://httpbin.org/ip"
def test_webkit_proxy():
print("=== Solution1: use WebKit ===")
with sync_playwright() as p:
browser = p.webkit.launch()
context = browser.new_context(
proxy={
"server": server,
"username": username,
"password": password
}
)
page = context.new_page()
try:
response = page.goto(dst_url, timeout=30000)
if response.status == 200:
print(f"✅ WebKit success: {response.status}")
else:
print(f"❌ WebKit fail: {response.status}")
print(f"response body: {response.text()}")
except Exception as e:
print(f"❌ WebKit fail: {e}")
finally:
browser.close()
def test_chromium_standard():
print("=== Solution2: use Chromium standard ===")
with sync_playwright() as p:
browser = p.chromium.launch()
context = browser.new_context(
proxy={
"server": server,
"username": username,
"password": password
}
)
page = context.new_page()
try:
response = page.goto(dst_url, timeout=30000)
if response.status == 200:
print(f"✅ Chromium standard success: {response.status}")
else:
print(f"❌ Chromium standard fail: {response.status}")
print(f"response body: {response.text()}")
except Exception as e:
print(f"❌ Chromium standard fail: {e}")
finally:
browser.close()
if __name__ == "__main__":
test_webkit_proxy()
test_chromium_standard()