Почему у Puppeteer возникают проблемы с подключением к профилю Vision?

Как исправить ошибку "TypeError: Failed to fetch browser webSocket URL from https://localhost:19743/json/version: fetch failed" при подключении к профилю через puppeteer nodejs через API антидетект браузера Vision? Порт, как указано в выводе команды netstat -a, находится в состоянии "LISTENING", и код, написанный на python, работает без проблем. Вот пример кода, который вызывает ошибку:

```javascript
const example = async (port) => {
    const browser = await puppeteer.connect({
        browserURL: 'https://localhost:'+port,
        defaultViewport: null,
    })
    page.goto('https://google.com')
}
```
  • 26 января 2024 г. 10:28
Ответы на вопрос 1
Ошибка "TypeError: Failed to fetch browser webSocket URL from https://localhost:19743/json/version: fetch failed" указывает на то, что Puppeteer не смог соединиться с удаленным браузером. Это может быть вызвано несколькими причинами:

1. **Подключение по протоколу HTTPS вместо HTTP**: Обычно когда вы подключаетесь к браузеру через Puppeteer, вы используете протокол HTTP, но в вашем примере используется HTTPS. Убедитесь, что подключение по HTTPS действительно необходимо и правильно настроено, включая валидные SSL/TLS сертификаты. Если HTTPS не требуется, попробуйте использовать HTTP вместо HTTPS в строке подключения.

2. **Проблемы с SSL/TLS сертификатом**: Если подключение действительно должно быть защищенным (то есть через HTTPS), но сертификат не доверенный или неправильно сконфигурированный, это может вызвать ошибку. Вы можете попробовать добавить опцию `ignoreHTTPSErrors: true` в параметры подключения, чтобы игнорировать ошибки с сертификатами.

3. **Неправильная конфигурация Vision API**: Убедитесь, что Vision API настроен правильно, чтобы принимать подключения от Puppeteer, и что нет никаких брандмауэров, блокирующих доступ.

4. **Проблема с сетевым подключением**: Если порт находится в статусе "LISTENING", но всё равно не удаётся подключиться, проверьте, нет ли сетевых ограничений или брандмауэра, который мог бы блокировать подключения к этому порту.

5. **Отсутствие метода `await` перед загрузкой страницы**: В вашем примере кода вы забыли использовать `await` при вызове `page.goto('https://google.com')`, что может привести к другим ошибкам при выполнении.

Пример исправленного кода:

```javascript
const example = async (port) => {
    const browser = await puppeteer.connect({
        browserURL: 'http://localhost:' + port, // Используйте http если не требуется подключение по https
        ignoreHTTPSErrors: true, // Если вы до сих пор хотите использовать https и есть проблемы с сертификатом
        defaultViewport: null,
    });
    const page = await browser.newPage(); // Создаем новую вкладку
    await page.goto('https://google.com'); // Загружаем страницу, не забудьте про await
};
```

Чтобы исключить ошибки конфигурации API Vision, убедитесь, что у вас есть доступ к документации API и что вы следуете инструкциям для подключения к API правильно.

Если вы продолжаете сталкиваться с проблемами, попробуйте увидеть более подробные логи или сообщения об ошибке, которые могут указать на конкретную проблему. Иногда помогает проверка логов Vision API, чтобы увидеть, есть ли какие-либо записи о попытках подключения.
Похожие вопросы