Как в GET запросе указать язык сайта?

Поддержка
  • @senerg said in Как в GET запросе указать язык сайта?:

    откуда вы это взяли в гет запросе?

    Из Fiddler.

    @senerg said in Как в GET запросе указать язык сайта?:

    И почему вы удаляете кукис перед гет запросом?

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

  • @uraabk said in Как в GET запросе указать язык сайта?:

    Из Fiddler.

    Зачем это и почему ваш гет запрос выглядит именно так, там много букв)

  • @senerg said in Как в GET запросе указать язык сайта?:

    Зачем это

    Для удобности.

    @senerg said in Как в GET запросе указать язык сайта?:

    почему ваш гет запрос выглядит именно так, там много букв)

    А как ему ещё выглядеть? Сразу хочу уточнить, что я не буду пояснять каждую букву в запросе, откуда она появилась, что значит и зачем там находится... для понимания этого есть тонны всяких книг, курсов и подобное.

  • @senerg есть захват хттп-запросов.
    создаешь функцию для того, чтобы в нее писал захватчик.
    жмешь красную кнопку в левой части экрана сверху
    действие загрузить то, что тебе нужно. Итогом будет штук 50 действий состоящих из пост и гет запросов. Скорее всего нужна пара из них, ведущая на нужный сайт. Скорее всего, в этих запросах будет все нужное

  • @viktor , в запросе обязательно все это указывать? Что будет если не заполнять, ведь иногда get запрос и без этого работает? Хотя бы принцип в двух словах...
    0_1539526737135_8cfe3f07-10c5-4556-9e6f-1618fb439265-image.png

    В фидлере напротив всех http запросов замки показаны.

  • Так язык-то сайта алиэкспресс от строки Cookie что ли зависит, а не от Accept-Language? В фидлере при заходе что на русскую версию, что на английскую Accept-Language одинаковый.

  • @senerg так в куке может быть прописано откуда ты заходишь. самое страшное в твоем запросе это кукие и есть. Для начала попробуй использовать запрос один к одному, может прокатит. Нет, значит надо с куками манипулировать

  • @senerg на твоей фотке видно locale en-us. и регион US. В теле кукиса

  • @viktor said in Как в GET запросе указать язык сайта?:

    locale en-us. и регион US. В теле кукиса

    Да, только он почему-то не всегда срабатывает. Иной раз указываешь в запросе кукис от португальской версии сайта, в тексте написано pt, а запрос отправляется все равно на русскую версию.

    Как вообще должны вести себя кукис при многократном заходе на один и тот же сайт: меняются или остаются прежними? По какому принципу их надо устанавливать в запросе, чтобы вызывать как можно меньше подозрений?

  • @senerg
    На этот вопрос очень сложно ответить.
    Каждый сайт сам решает когда и какие куки записывать/перезаписывать. Плюс, как уже писал выше, куки не панацея. Есть ещё очень много параметров, по которым разные сайты определяют сессию "подозрительной".

  • @xclsv Можете подсказать где можно почитать/посмотреть информацию о том как правильно работать с кукисами на запросах? Наверняка вопрос уже поднимался сотню раз.

  • @senerg
    К сожалению, нет.
    Во-первых, как уже говорил, каждый сайт самостоятельно решает, когда и какие куки ему писать. Т.е. не существует мануалов по записи кук, чтобы обойти любой сайт.
    Во-вторых, при использовании http-клиента, задача анонимности решается через внушение серверу, что к нему обращается браузер, если конечно, сайт это вообще как-то отслеживает. Чтобы этого добиться, лично я получаю куки через браузер в басе, а уже потом заливаю их в http-клиент. Самый частый пример - логинимся в браузере, сохраняем куки, загружаем в http-клиент. После этого, как правило, при любом запросе через http-клиент сервер будет думать, что клиент авторизован.

    В случае с али, тут скорее исключение, т.к. язык клиента чаще всего определяется через заголовок Accept-Language, реже через ip, а не через переменную в куках. Попробуйте не подставлять никакие куки и посмотрите, как реагирует сервер.

    Я бы рекомендовал почитать, как взаимодействуют клиент-сервер, что такое вообще post/get-запросы, заголовки и куки.

  • @xclsv said in Как в GET запросе указать язык сайта?:
    Спасибо за информацию.

    В случае с али, тут скорее исключение, т.к. язык клиента чаще всего определяется через заголовок Accept-Language

    У меня без строки кукис гет запрос не работает. А язык сайта удается поменять только загрузкой новых кук с уже сохраненным языком сайта, Accept-Language при этом один и тот же и не влияет на язык сайта.

    при использовании http-клиента, задача анонимности решается через внушение серверу, что к нему обращается браузер

    Значит ли это, что один гет запрос отправлять к сайту не стоит и лучше в басе записать всю серию запросов, которую выполняет браузер при заходе на сайт (штук 50-100) и каждый раз выполнять их все?

  • @senerg said in Как в GET запросе указать язык сайта?:

    У меня без строки кукис гет запрос не работает. А язык сайта удается поменять только загрузкой новых кук с уже сохраненным языком сайта, Accept-Language при этом один и тот же и не влияет на язык сайта.

    А что происходит, если куки не указать совсем? Версию с каким языком отдает али?

    @senerg said in Как в GET запросе указать язык сайта?:

    Значит ли это, что один гет запрос отправлять к сайту не стоит и лучше в басе записать всю серию запросов, которую выполняет браузер при заходе на сайт (штук 50-100) и каждый раз выполнять их все?

    Нет. Если вы обратили внимание, большая часть этих запросов - загрузка скриптов, изображений, счетчиков и внешних рекламных баннеров. Запросов с контентом, как правило, всего несколько.
    Я ещё не встречал такого, чтобы сервер проверял, запрашивал ли я все эти 100500 запросов. У меня все всегда работало лишь для контентных запросов(1-2 штуки). Но это не говорит о том, что какие-то сайты не могут это проверять.
    Учиться таким вещам легче на сайтах попроще али =)

  • @xclsv said in Как в GET запросе указать язык сайта?:

    А что происходит, если куки не указать совсем?

    Сам запрос проходит без ошибок, но после него не находит скрипт из которого извлекаю урл:
    0_1539595894036_8d05d051-2949-4499-aaca-2678d726acc3-image.png
    Can't resolve query //*[@id='j-detail-gallery-main']//script/text()

  • @senerg
    Какой url подставляете? www.aliexpress.com ?

  • @senerg
    Какую версию (язык) нужно получить?

  • @xclsv Все 5, там размер картинок разный для каждого языка. Поэтому пытаюсь получить размер каждой и скачать максимальную. У меня получается выбрать язык в браузере, скопировать от туда заголовки с куками в гет запрос БАСа и таким образом удается получить урл картинок для каждого языка. Но как сделать так, чтобы куки и заголовки менялись и сохранялись после операции пока не разобрался.

  • @senerg
    Полагаю, куки каждого из языков нужно получить только один раз. После этого их можно сохранить в переменные и подставлять перед каждым запросом. Так пробовали делать?
    Только перед каждым запросом необходимо будет выполнить сброс http-клиента, т.к. он собирает куки с сайта также, как обычный браузер.