Задать вопрос
@OctorberMyMonth

Как расшифровать строку url запроса?

Всем мир!

Url = 'https://www.avito.ru/rostov-na-donu/avtomobili/aud...'

Скажите, как расшифровать данный отрезок: f=ASgBAgECAUTgtg3elygBRfgCGHsiZnJvbSI6ODkzLCJ0byI6NDMxNzg5fQ
Возможно я не правильно сформулировал свой вопрос, ввиду не знания, но суть такова, можно ли перевести это в текст, чтобы самому отправлять запрос через requests и получать ответ.

Интересно, что это такое и для чего это делается?
Заранее всем спасибо!
  • Вопрос задан
  • 1095 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
base64, думаю, у авито своя кодировка, поэтому привести обратно в текст как обычный b64 не выйдет.

Интересно, что это такое и для чего это делается

Это просто строка для сокращения фильтров. Хотя, судя по всему, кроме года выпуска авто она ни за что не отвечает.

Если хотите узнать откуда она собирается - откройте инструменты разработчика на F12 - вкладка Network. При изменении года выпуска отправляется запрос на js/catalog с различными фильтрующими параметрами.

Если его причесать через urlencoder, то выйдет примерно это:
https://www.avito.ru/js/catalog?_=&categoryId=9&locationId=652000&radius=0&cd=1&s=101&p=1&params[188][from]=893&params[188][to]=896&params[110000]=329199&verticalCategoryId=0&rootCategoryId=1&localPriority=0&sellerId=&proprofile=1&proProfileDomain=&countOnly=1


Где params[188][from] и params[188][to] - года выпуска от и до соответственно.
params[188][from]=893 - год 2000
params[188][to]=896 - год 2003
Почему года не соответствуют цифрам - значит так надо авито.

В ответ на этот запрос возвращается ссылка на страницу с поиском машин с этими фильтрами, в данном случае:
/rostov-na-donu/avtomobili/audi?cd=1&f=ASgBAgECAUTgtg3elygBRfgCFXsiZnJvbSI6ODkzLCJ0byI6ODk2fQ&localPriority=0

Где и есть этот параметр f

Думаю, вам он не особо нужен, важен только первый запрос, который был во вкладке Network, можно просто отправлять его как GET и получать в ответ нужную вам ссылку из JSON объекта, который приходит в ответ.

В принципе, расшифровка base64 примерно и дает этот результат:
6061fa92d5694516957328.jpeg

Так что открываете инструменты разработчика, Network, включаете фильтр на XHR и пробуете изменить какие либо фильтры. В результате находите запрос на js/catalog с нужными вам параметрами, ну и там уже методом проб разбираетесь какой параметр за что отвечает
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы