Использование 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: полный практический гидГид
- Создаём первого бота в Browser Automation StudioПошаговый разбор создания первого рабочего бота в BAS — от пустого проекта до процесса, который ходит по страницам, извлекает данные и работает в несколько потоков.
- Настройка прокси в Browser Automation StudioКак правильно настроить прокси в BAS — типы прокси, привязка по потокам, ротация и проверки, которые не дают мультиаккаунт-ботам попасть под бан.
- Поиск элементов в BAS: селекторы, которые не ломаютсяКак работает поиск элементов в Browser Automation Studio — CSS против XPath, почему записанные селекторы ломаются и как писать селекторы, переживающие изменения страницы.