Playwright: Отсутствие зависимостей для запуска браузеров на AWS EC2 (Ubuntu)
Я пытаюсь использовать Playwright в проекте на Python для автоматизации действий в браузере. Настройка отлично работает на моей локальной машине, но при развертывании проекта на экземпляре AWS EC2 возникают проблемы с отсутствующими системными зависимостями.
Окружение: AWS EC2 Instance: Ubuntu 20.04 Python: 3.12 Версия Playwright: 1.45.1
Пройденные шаги: Установлен Playwright:
pip install playwright
Установленные браузеры Playwright:
python -m playwright install
Попробовали установить системные зависимости:
sudo npx playwright install-deps
Сообщения об ошибках: При попытке запустить Playwright на экземпляре AWS EC2 я по-прежнему получаю следующее сообщение об ошибке: "BrowserType.launch: Executable doesn't exist at /root/.cache/ms-playwright/webkit-2035/pw_run.sh\n╔════════════════════════════════════════════════════════════╗\n║ Похоже, что Playwright был только что установлен или обновлен. ║\n║ Пожалуйста, выполните следующую команду для загрузки новых браузеров: ║\n║ ║\n║ playwright install ║\n║ ║\n║ <3 Playwright Team ║\n╚════════════════════════════════════════════════════════════╝"
Вот скриншот ошибки: Ошибка на Postman
Сниппет кода:
import asyncio
import re
import logging
import time
from playwright.async_api import async_playwright
async with async_playwright() as p:
browser = await p.webkit.launch(headless=True)
for attempt in range(retries):
try:
context = await browser.new_context(user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")
page = await context.new_page()
for nav_attempt in range(retries):
try:
await page.goto(url, timeout=30000) # Reduced timeout for faster retries
logger.info(f"Navigated to {url}")
break
except Exception as e:
logger.error(f"Navigation attempt {nav_attempt + 1}/{retries} failed: {e}")
Дополнительная информация: Перед выполнением команд активируется виртуальная среда. Настройка отлично работает на моей локальной машине. Многократная переустановка Playwright и зависимостей на экземпляре AWS EC2 не помогла решить проблему.
Вопрос: Как я могу устранить эти недостающие зависимости и успешно запустить Playwright на моем экземпляре AWS EC2?