Перейти к основному содержимому

GET-запрос

🔗 Оригинальная страница — Источник данного материала


GET-запрос

Описание

ZennoPoster позволяет использовать ❗→ HTTP запросы при работе с различными сайтами. Вы можете получать данные GET запросами, например, запрашивать результаты поиска по запросу в поисковой системе, скачивать файлы, парсить данные, работать с API веб-сервисов и приложений.

image-20200809-122510

Как добавить экшен в проект?

Через контекстное меню Добавить действиеHTTPGET-запрос

image-20200808-204038

Либо воспользуйтесь ❗→ умным поиском.

Для чего это используется?

  • Работа шаблонов без браузера
  • Быстрый способ получения данных с сайта
  • Скачивать файлы
  • Работа с API сервисов

Как работать с экшеном: Вкладка “Основные”

image-20210529-070440

URL

Адрес сайта, по которому будет отправлен запрос, можно использовать ❗→ переменную.

Referer

Заголовок запроса Referer содержит URL исходной страницы, с которой был осуществлён переход на текущую страницу. Заголовок *Referer позволяет серверу узнать откуда был осуществлён переход на запрашиваемую страницу. Можно использовать ❗→ макросы переменных.

Кодировка

Кодировка, в которой будет отправлен запрос.

Таймаут

Максимальное время ожидания ответа от сайта в секундах. При достижении установленного времени, действие будет завершено ошибкой и выйдет по красной ветке. Можно использовать ❗→ макросы переменных.

Загружать

Только содержимое

В переменную будет сохранено только тело ответа

Пример ответа при запросе https://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.8",
"Host": "httpbin.org",
"Referer": "https://google.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3"
},
"origin": "1.2.3.4",
"url": "https://httpbin.org/get"
}

Только заголовки

Будут сохранены только заголовки ответа

Пример ответа при запросе https://httpbin.org/get
HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

Заголовки и содержимое

В переменную будут сохранены и заголовок ответа, и его тело. Разделены они будут двумя пустыми строками.

Пример ответа при запросе https://httpbin.org/get
HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin:
Access-Control-Allow-Credentials: true

HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true


{
"args": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.8",
"Host": "httpbin.org",
"Referer": "https://google.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3"
},
"origin": "1.2.3.4",
"url": "https://httpbin.org/get"
}

Как файл

Этот режим стоит выбирать, если Вы пытаетесь скачать файл с помощью запроса.

В переменную сохранится путь к скачанному файлу.

На заметку

По умолчанию файлы скачиваются в папку Trash в директории установленного ZennoPoster. Путь к ней может выглядеть так - C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.4.0.0\Progs\Trash\googlelogo\_color\_92x30dp.png. Изменить этот путь можно в настройках, глобально для всех проектов. Или с помощью экшена во время выполнения шаблона.

Как файл + заголовки

В переменную сохранятся заголовки ответа и путь к скачанному файлу.

Положить в переменную

Здесь надо выбрать (или создать новую) переменную, в которую будет сохранён результат запроса.

Как работать с экшеном: Вкладка “Дополнительно”

image-20210525-142622

Редирект

Установить перенаправление - если ответ на запрос будет содержать код редиректа (пример. ответа 301, 302), Zennoposter используя заголовок *Location, перейдёт к следующей странице. Цифрами указываем максимальное количество переходов: 0 - остаться на исходной странице , 5 - количество переходов до конечного url.

Использовать оригинальный URL

Отмена кодирования URL из вкладки "Основное" в urlencode.
Пример:
Оригинальный url: https://ru.wikipedia.org/wiki/Приветствие
По умолчанию: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5

Заголовки

Использовать по умолчанию

В запрос будут подставлены заголовки по умолчанию. Вот как они выглядят (на примере запроса к https://httpbin.org/get, заголовок Host будет меняться в зависимости от URL адреса в запросе)

Host: httpbin.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5

Текущий профиль

Будут подставлены заголовки из текущего ❗→ профиля проекта.

Загрузить из профиля

Необходимо выбрать файл или указать ❗→ переменную содержащую путь до ❗→ профиля из которого будут загружены заголовки для запроса.

Пользовательские настройки

Позволяет самостоятельно указать каждый параметр заголовка запроса.

Заголовки запроса
Внимание

Первой всегда () указывается строка User-Agent! И только потом все остальные заголовки.

image-20210525-151513

Можно указать готовые куки или из ❗→ переменной.

Формат: имя=значение , несколько разделяются с помощью ;(точка с запятой). Пример:

user=1992103;session=f79fcadd847b80f9df78ba4fb276c867;id=889
На заметку

Начиная с версии 7.1.6.0 (5.45.0.0) данное поле ввода отображается только в том случае, если вЫключена настройка Использовать CookieContainer (описан далее).

Использовать CookieContainer

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

Пример

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

Затем ❗→ отключаем браузер и начинаем работать с сайтом используя запросы. Включив настройку Использовать CookieContainer куки будут автоматически синхронизированы между браузером и запросами, Вам не надо ничего вручную делать - cookies будут подставлены автоматически. И если при одном из запросов сайт вернёт новое значение для одной или нескольких кук, то эти новые значения будут автоматически синхронизированы. И при выполнении следующего запроса (или при открытии сайта через встроенный браузер) будет использовано обновлённое значение.

Пример Пользовательских настроек

Используя переменные профиля для заголовков и ручную подстановку кук.

image-20210529-091044


Как работать с экшеном: Вкладка “Прокси”

image-20210529-084701

Без прокси

Работа экшена происходит используя реальный ip компьютера\сервера.

Текущий прокси проекта

Используется ❗→ установленный в проекте прокси.

Строка формата

image-20210529-084950

Указываем прокси в формате (можно указать ❗→ переменную): a) С авторизацией - socks5://логин:пароль@ip:port или http://логин:пароль@ip:port
b) Без авторизации - socks5://ip:port или http://ip:port
c) Без указания протокола (по умолчанию будет использован http://)- логин:пароль@ip:port или ip:port

Другой

image-20210529-085221

Выбираем если необходимо указать детальные настройки прокси. Тип прокси, данные авторизации, адрес и порт. Информацию уточняйте у своего поставщика услуг.

На заметку

Во всех полях ввода можно использовать переменные.

Внимание

Если не указан протокол прокси, то по умолчанию будет использоваться http://

Создание экшенов из запросов монитора трафика

Информация

Добавлено в ZennoPoster 7.1.5.0 (5.44.0.0)

Готовый HTTP-запрос можно создать прямо из ❗→ Окна Трафика.

image-20200810-163348

  1. Наводим курсор на нужный запрос и правой кнопкой мыши вызываем контекстное меню.
  2. Нажимаем Создать действие из запроса.

На холсте проекта появится полностью заполненный экшен HTTP-запроса.

image-20200810-163642

image-20200810-163654

Измените статические значение или замените на перемененные - экшен полностью готов к работе.

Выключение браузера

Если Вы работаете исключительно с помощью запросов, то можно отключить браузер, тем самым сэкономив ресурсы компьютера; сделать это можно либо в ❗→ настройках проекта, либо используя экшен ❗→ Настройки браузера.

image-20200810-112931

Способ передачи запроса

В ZennoPoster есть два метода работы с запросами - сторонняя разработка (стандартный метод, библиотека Chilkat) и собственная (альтернативный метод). Если при работе с HTTP-запросами с использованием стандартного метода у Вас что-то работает не так, то попробуйте переключиться на альтернативный метод.

Изменить способ передачи запросов можно в ❗→ настройках программы (глобально для всех проектов) или в ❗→ настройках конкретного проекта.

image-20200808-214404

Пример использования

Узнаем текущий ip адрес, с которого работает проект. Для этого достаточно сделать GET-запрос по адресу https://api.ipify.org/, а во вкладке *Прокси выбрать *Текущий прокси проекта.

image-20210529-075118

Полезные ссылки