Когда я пытаюсь получить запрос wget страницы 430, я получаю перенаправление 302.

wget "https://www.zalando.be/kleding/?p=430"

Приводит к

HTTP-verzoek is sent; waiting on answer... 302 Moved Temporarily
Location: /kleding/?p=429 [following...]
--2018-11-10 21:08:57--  https://www.zalando.be/kleding/?p=429

Однако, когда я захожу на сайт и нажимаю кнопку следующей страницы, он переходит на "https://www.zalando.be/kleding/?p=430 » .

Я не понимаю, как это возможно, может кто-нибудь разъяснит мне это?

Также можно ли это сделать в оболочке?

0
Quinten Lootens 10 Ноя 2018 в 23:11

2 ответа

Лучший ответ

Таким образом, похоже, что доступ с помощью wget или прямой записи в адресной строке браузера URL-адреса сайта для значений p больше 429 вызовет 302 редирект .

Этого не происходит при нажатии кнопки Далее , потому что таким образом содержимое страницы загружается через AJAX. Это пример запроса, выполняемого при нажатии кнопки Далее : https://www.zalando.be/api/catalog/articles?categories=kleding&limit=84&offset=36036&sort=popularity

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

1
Dan D. 10 Ноя 2018 в 22:25

Я ошибался.

Такое ощущение, что при перезагрузке страницы несколько раз меняется содержимое. Тот факт, что браузер также получает код 302 при переходе на www.zalando.be/kleding/ ? p = 430 означает, что существует "проблема" на стороне сервера с динамическим контентом. Я не знаю, как работает Zalando, но, как мне кажется, сортировка по популярности сбивает систему. Когда система не знает нужного количества записей, она затем перенаправляется на страницу 429 (о чем свидетельствует 431, также перенаправляющая).

Вероятно, это очень временное перенаправление, потому что я не могу воспроизвести проблему.

0
Pelican 10 Ноя 2018 в 21:13