Перейти к содержимому
PD
Browser Automation Studio

Использование HTTP-клиента в BAS

Как делать запросы без браузера в Browser Automation Studio — GET и POST, заголовки, cookies, прокси и скачивание файлов через модуль HTTP-клиента.

У BAS есть два способа общения с сайтом: настоящий браузер и HTTP-клиент — прямые запросы без отрисовки. HTTP-клиент — это то, чем вы масштабируетесь, и модуль даёт всё, что нужно обычному HTTP-запросу: методы, заголовки, cookies, прокси и скачивание.

Для чего нужен HTTP-клиент

HTTP-клиент шлёт запросы прямо на веб-сервер без открытия страницы в браузере и без отрисовки визуала. Вы получаете сырой ответ — HTML, JSON, файл — и больше ничего. Поскольку нет движка отрисовки, жрущего RAM и CPU, то же железо, что тянет 100–200 потоков браузера, выдаёт тысячу и более потоков HTTP-клиента. Это правильный инструмент всегда, когда нужные данные уже есть в ответе и важна пропускная способность.

Основные действия запросов

Get запрос. Выполняет запросы методами GET, HEAD, DELETE, TRACE, OPTIONS. Применяйте, чтобы получить HTML страницы напрямую с веб-сервера или забрать данные без браузера. Дополнительное поле позволяет указать заголовки, которые сервер увидит при отправке.

Post запрос. Выполняет запросы методами POST, PUT, PATCH — используется, чтобы отправить изменения на сайт (например, выполнить поиск по товарам или отправить данные) и прочитать результат. В отличие от GET, POST несёт поле Post Data (передаваемые параметры), тип контента (application/x-www-form-urlencoded, multipart/form-data или application/json) и кодировку запроса. У него тоже есть поле для заголовков запроса.

Скачать. Скачивает файл по URL из запроса — картинку, капчу, видео или аудиофайл. Дополнительный параметр задаёт путь, куда сохранится файл.

Управление запросом

Установить заголовок. Добавляет или задаёт заголовок запроса, который увидят сайт и сервер, — необходимо для запросов, ждущих определённых заголовков (токены авторизации, согласование контента, реалистичный user-agent).

HTTP-клиент Прокси. Направляет запросы клиента через прокси. Это аналог установки прокси в браузере, но действует только на HTTP-клиент.

Загрузить cookie. Загружает cookies в клиент, чтобы авторизованные запросы несли нужную сессию.

Сброс. Очищает все заголовки и cookies до нулевого состояния — полный сброс настроек клиента. Применяйте между личностями, чтобы заголовки и cookies одного запроса не утекали в следующий.

Чтение результата

Содержание ответа. Возвращает тело ответа, чтобы вы его распарсили — отдайте его в парсинг JSON, XPath или регулярные выражения, чтобы извлечь нужное.

Проверка ошибки. Сообщает, упал ли запрос, чтобы поток мог ветвиться и повторять, а не молча продолжать на плохом ответе.

Частый паттерн

HTTP-клиент раскрывается в связке с браузером, а не вместо него. Типичный масштабный бот входит настоящим браузером (потому что этот шаг его требует), выгружает cookies сессии, а затем расходится на тысячи потоков HTTP-клиента — загружает cookies, шлёт GET/POST-запросы через ротируемые прокси и парсит сырые ответы. Браузер — для частей, которым нужен браузер; HTTP-клиент — для тяжёлой выкачки, которой он не нужен.

Вопросы и ответы

Когда использовать HTTP-клиент вместо браузера в BAS?

Используйте HTTP-клиент, когда данные лежат в сыром ответе сервера и нужен объём. Он работает без отрисовки браузера, поэтому одна машина выдаёт куда больше потоков, чем 100–200, реально доступных браузеру.

Выполняет ли HTTP-клиент JavaScript?

Нет. Он только шлёт запросы и получает сырой ответ — HTML, JSON или файлы. Всё, что появляется лишь после выполнения JavaScript, для него невидимо; для этого нужен режим браузера.

Ещё по теме

  • #Browser Automation Studio
  • #BAS
  • #HTTP-клиент
  • #Запросы
  • #Масштабирование

Есть идея? Давайте превратим её в работающий продукт.

Пропустите месяцы неопределённости. Получите понятную архитектуру, рабочий MVP и систему, которую можно тестировать, продавать и масштабировать.