ВсеНовоеУлучшеноИсправлено
Исправлено

Browser фиксирует реальный статус после прохождения проверки Cloudflare

Когда защищенный Cloudflare целевой ресурс возвращал реальную страницу гео-блокировки (451) после прохождения проверки, продукт Browser возвращал статус 200, так как watcher жестко задавал статус успешного прохождения. Теперь watcher читает фактический Document после прохождения проверки, поэтому 200 остается 200, 451 выводится как 451, а Auto отклоняет неверный контент и продолжает искать выход, который точно соответствует вашим правилам validate.

Исправлено

Cmd+K открывается на нелатинских клавиатурах

Сочетание клавиш Cmd+K (Ctrl+K) теперь открывает командную панель и модальное окно поиска независимо от раскладки клавиатуры. Раньше мы проверяли введенный символ (к на кириллической раскладке), поэтому пользователи с нелатинской раскладкой ничего не получали. Теперь мы проверяем физическую клавишу. Исправлено на основном сайте, в блоге и в документации.

Исправлено

Auto расходует полный бюджет на холодные решения

Холодное решение Auto может занять несколько минут, и request теперь остается открытым на весь выделенный бюджет. Ошибки любого уровня возвращаются в формате JSON, который может разобрать ваш клиент.

Исправлено

Автоматическое снижение до 2 кредитов при повторных запросах

Сайты с возможностью повторного использования cookie (bet365 был тестовым примером) застревали на дорогом решении через браузер по 15 кредитов за запрос вместо перехода на дешевый повтор за 2 кредита после первого решения. Два бага: блокировка срабатывала при любой временной ошибке транспорта, а успешный повтор в браузере никогда не обновлял сессионные cookie. Исправили оба. Повторные запросы к сайтам с переиспользованием cookie теперь стоят 2 кредита после первого решения, как и предусмотрено тарифами.

Исправлено

Ограничение cross-origin доступа к API

Мы ограничили cross-origin доступ, чтобы только foura.ai мог вызывать API с credentials. Мы также усилили фильтр входных данных на metrics endpoint и удалили fallback secret, использовавшийся только для разработки. Существующие интеграции не изменятся.

Исправлено

Пользовательские правила валидации учитываются как успех

Если вы установили validate.status.accept для запроса, движок рассматривает принятый код, отличный от 200, как полный успех. В разделе активности такие запросы по-прежнему помечались как сбои, что искажало вашу статистику использования. Теперь результаты соответствуют вашим правилам валидации. Принятый код 403 отображается как успех, а не как App Fail.

Исправлено

Страницы не в UTF-8 теперь декодируются корректно

Если вы парсили страницы на кириллице, китайском, японском или другие страницы не в UTF-8 через Single, тело ответа раньше возвращалось в виде кракозябр. Мы принудительно декодировали каждый response в UTF-8 до того, как вы видели необработанные байты. Теперь мы считываем кодировку из response (Content-Type, затем <meta charset>, затем резервный UTF-8) и декодируем его корректно. Спасибо Александру Канчеву (Sensika) за сообщение об этой проблеме.

Исправлено

Обнаружены фейковые proxy, возвращающие ваш request обратно

Некоторые proxy в сети на самом деле не перенаправляют ваш request. Они возвращают его обратно в виде plaintext-дампа сервера и пытаются извлечь его содержимое. Теперь мы обнаруживаем этот паттерн до того, как response попадет в ваш код, поэтому Single, Browser и Proxy Finder возвращают корректную ошибку (или выполняют retry) вместо мусора.

Исправлено

Новые найденные прокси быстрее попадают в пул

Мы устранили задержку, из-за которой новые найденные прокси ожидали проверки. Теперь Proxy Finder проверяет их сразу же, поэтому пул остается более актуальным, а в ротации находится больше активных рабочих прокси.

Исправлено

Cookies в Playground следуют правилам host-only из RFC 6265

Playground теперь корректно отслеживает атрибут Domain, поэтому host-only cookies остаются на своем хосте. Представление Parsed отмечает их значком HO, а Raw соответствует тому, что отправил upstream.

Исправлено

Поля Playground соответствуют реальной схеме API

Теперь каждое поле Playground согласовано со схемой: Browser принудительно использует GET, скрывает текстовое поле тела запроса, а вкладка Raw показывает точный JSON, который отправляется в API, а также команду curl для воспроизведения.

Исправлено

Unblocker работает end-to-end в Single и Proxy Finder

Благодаря unblocker: true инструменты Single и Proxy Finder теперь передают полную сигнатуру unblocker до самого целевого сервера, поэтому проверяющие её системы защиты от ботов пропускают запрос.

Исправлено

Пассивные проверки Cloudflare теперь решаются в Browser

Некоторые сайты под защитой Cloudflare возвращают статус 200 OK, но внедряют фоновый скрипт, который чуть позже выдает настоящий cookie cf_clearance. Раньше Browser возвращал страницу до того, как этот cookie был получен, оставляя jar пустым. Теперь Browser ожидает события cookie, поэтому вы получаете чистый cf_clearance, который можно повторно использовать через Single или Proxy.

Исправлено

Ссылки пагинации в блоге теперь работают

Кнопка «Older» в блоге раньше возвращала на первую страницу. Теперь пагинация работает по URL /blog/page/N/ с нумерованной навигацией, так что вы действительно можете просматривать более старые записи. Спасибо, Владимир Петров.

Исправлено

Браузер выполняет JavaScript для каждого запроса

Теперь браузер обрабатывает каждый запрос с помощью движка JavaScript, поэтому проверки Cloudflare и страницы с большим количеством JS отображаются корректно.