1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 1500+ и мы растем!
    Скрыть объявление

Всё о редиректах

Вывод редиректов, их количество, код ответа сервера и последовательный вывод редиректов

  1. Support Alex
    Минимальная версия A-Parser:
    1.2.584
    В данной статье мы разберем подробно работу с редиректами:
    • Отобразим кол-во редиректов
    • Покажем конечную ссылку после редиректа
    • Покажем все ссылки, если несколько подряд редиректов
    • Выведем код ответа сервера, по которому происходит редирект.

    Разберем работу опций:
    • Max redirects count
    • Follow common redirects.

    1. Проверяем количество редиректов

    1.1. Создаем парсер NET:HTTP.

    [​IMG]

    1.2. Выбираем опцию “Max redirects count” - Максимальное кол-во редиректов, по которым будет переходить парсер. Значение выбираем максимальное.

    [​IMG]

    [​IMG]

    1.3. Чтобы показать количество редиректов, необходимо в поле Формат результата написать следующую переменную $response.Redirects.size.

    [​IMG]

    Результат:
    2. Конечная ссылка после редиректа

    2.1. Повторяем пункты 1.1 и 1.2.
    2.2. Для того чтобы показать ссылку куда ведет редирект, необходимо указать в поле Формат результата следующую переменную $response.URI.

    [​IMG]

    Результат:
    3. Несколько редиректов

    3.1. Повторяем пункты 1.1 и 1.2.
    3.2. Для того чтобы показать несколько ссылок, по которым был совершен последовательный редирект необходимо в поле Result format написать следующее:
    Код:
    $response.Redirects.format('$URI^')$response.URI\n

    Выводим сначала массив всех редиректов $response.Redirects.format('$URI^') (разделитель в данном случае между ними будет ^), а в конце выводим последнюю ссылку, на которую пересылает редирект $response.URI.

    [​IMG]

    Результат:
    4. Код ответа + URL редиректа

    4.1. Повторяем пункты 1.1 и 1.2.
    4.2. Для кода ответа каждого редиректа и последней ссылки необходимо указать переменную $Status. Чтобы узнать какие данные можно вывести в результат при помощи встроенной переменной $response.Redirects необходимо вывести результат запроса при помощи встроенной переменной $response.json и посмотреть в любом редакторе (например Notepad++) все содержимое JSON.

    [​IMG]

    [​IMG]

    В поле Result format пишем следующее:

    Код:
    $response.Redirects.format('$URI^($Status)')$response.URI^($response.Status)\n

    [​IMG]

    Результат:
    5. Работа опций Max redirects count и Follow common redirects

    5.1. Выбираем опции:
    • Max redirects count - Максимальное кол-во редиректов по которым будет переходить парсер.

    • Follow common redirects (по умолчанию включена) - позволяет делать редиректы http <-> https и www.domain <-> domain в пределах одного домена в обход лимита Max redirects count. Для правильного получения результатов парсинга данную опцию лучше не отключать. Так как если например, опция Max redirects count используется со значением меньше 2 и опция Follow common redirects будет отключена, то результат будет неправильным, при наличии общего кол-ва редиректов больше 3-х:
      • редиректы http <-> https
      • www.domain <-> domain
      • редиректы на другие ссылки
    [​IMG]

    [​IMG]

    5.2. Если для опции “Max redirects count” выбрать значение 0, то тогда сбор редиректов происходить не будет, кроме редиректов: http <-> https и www.domain <-> domain и первого редиректа после них.

    [​IMG]

    [​IMG]

    5.3. При отключении обеих опций “Max redirects count” и “Follow common redirects” редиректы парсер собирать не будет.

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

Пoследние рецензии

  1. AntonR
    AntonR
    5/5,
    супер!!! мега мануал!)
  2. Kreola
    Kreola
    5/5,
    Наконец-то толковое разъяснение. Больше такого формата!