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

Поддержка
  • @senerg как ты вообще получаешь данные страницы таким образом? У меня они вообще не загружаются без Cookie...
    Вот держи, на агл все..
    0_1538565372008_1538564661259-aliexpress-title-parser-get.xml

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

    Cookie

    Спасибо. А при чем здесь Cookie?

  • @senerg у меня без них не хочет получать данные get запросом, если у тебя работает без Cookie, то я рад за тебя))

  • @uraabk Я просто понять хочу как наличие Cookie может повлиять на гет запрос?

  • @senerg очень сильно оно может влиять. Как минимум при загрузке страницы али нужна данные ali_apache_id и XSRF-TOKEN в Cookie. Без них али не будет загружать страницу сразу, а будет делать переадресацию, что бы получит эти данные...

  • @uraabk , поясните, пожалуйста, откуда вы это взяли в гет запросе?

    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 YaBrowser/18.9.1.885 Yowser/2.5 Safari/537.36
    DNT: 1
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Accept-Encoding: gzip, deflate, br
    Accept-Language: ru,en;q=0.9,la;q=0.8
    Cookie: ali_apache_id=11.227.116.54.1535396016893.325053.9; aep_common_f=AhKc6uP4DT7lvvXTd0lhsO7aG2zb++mF3Bq5Xy21DP3oB9+WrUG6lA==; xman_f=ootFfr9O6H+A96i0e9qhh0SgZy+Q8y0UbUvliO3pEKMpSF/16LsRvV7VthTV30EsTTV1wssEp2JW237d3nWc3n+XQs3jpf2N7brn4EOSPGRqHlhRVJwfjBd59vNR3iQCbDR8HhlOBGpDDyHYULJgJLbuneOZ64NG9sPM68I/opTx/URtqCnMkib81EuJoc8+Y/9yMs2dfS3jRNxkMOiHXNX3ao8mxx1BK72SkRKzUCTVFeOmvCL+5YtJ3th3JGHfPhkkT5isEtJ0uTfuc3xBLx+dHmwkLVpfDnOhENFsv/uNonmCF4D2TaDsigTFxqSbPY2Pm7vdMd4m3uAz5/dFM6uUhNcdt/i8l3BwZ7IWT+YhEy5SRFzADfO6KeY9zTM8Ck5VRTNr97M=; _ym_uid=1537603024548600948; _ym_d=1537603024; _ga=GA1.2.154715879.1537603024; cna=3eMsFDFPSjgCAVn6BffD86IV; aeu_cid=052ce702b65a4cda8ff180bb7669dd54-1538079849278-03159-yjq3vrZ; xman_t=C2Fo7UnkJMIESqaPo7IAadpuLOgeTHyI94eIwhWVK0vCoEPFOyr9vn3XeyISNIld; ali_beacon_id=11.227.116.54.1535396016893.325053.9; AKA_A2=A; intl_locale=en_US; _m_h5_tk=5c00ca8a9a73b5fc549e3f1e0f738009_1538566324293; _m_h5_tk_enc=ac949e5a893d4bb6496d3898058a56a2; JSESSIONID=C31BD141F4B99D980B8DFDD123E6255B; _mle_tmp0=iiCGajxLJhPRfqiVFROq8hwQYxhX2zEAIodgJWQkl1x%2BVkha%2BSlMrCQu0Sh9UNECtfslpO2S%2B3hqH%2Bp7Zx417ZeZq9YNcobXkrVYCRtYJ6NbRnzyFXapSSigS5rqKvZl; xman_us_f=zero_order=n&x_locale=en_US&x_l=0&last_popup_time=1536402696829&x_user=RU|uraabk|uraabk|ifm|743287248&no_popup_today=n&x_as_i=%7B%22cv%22%3A%222%22%2C%22tp1%22%3A%22main%22%2C%22src%22%3A%22link-c-tool%22%2C%22af%22%3A815098826%2C%22cpt%22%3A1538079849278%2C%22channel%22%3A%22AFFILIATE%22%2C%22affiliateKey%22%3A%22yjq3vrZ%22%2C%22tagtime%22%3A1538079849311%2C%22vd%22%3A%2230%22%7D; aep_usuc_f=isfm=y&site=glo&c_tp=USD&x_alimid=743287248&isb=y&region=US&b_locale=en_US; _mle_tmp_harden0=COMyBPKnGxIg1PC5i8KdrxtXY9A7C9jUEbCEGf%2F2DXXXyR9m7S%2FIr1cE%2BLT2GXEybyZJ%2Fl0%2FG51GJskU%2FRjbX96cl9vP%2BLQwpPOYehKI8PKwrZG5v%2FQNbm5aLWsLbXRM; _uab_collina=153856434551831224989953; acs_usuc_t=acs_rt=febefec07e024aa09b00bba35d7eb072&x_csrf=mpmsm_203lyi; intl_common_forever=dp18VLjvjtaQxDopnGywf3aidBW3c09/P9CyLUw3DqWQIHI7+qJ7Ww==; ali_apache_track=mt=1|mid=ru1123906271ezui; ali_apache_tracktmp=; aep_history=keywords%5E%0Akeywords%09%0A%0Aproduct_selloffer%5E%0Aproduct_selloffer%0932814054049%0932896961235%0932875731319%0932875859726%0932807275319%0932833562490%0932818330445%0932808065488; isg=BDEx5foGznQcGmJQy0YU9m55QL2S5KBnhDyGuRNGLfgXOlGMW261YN9bWBb56T3I
    

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

  • @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) и каждый раз выполнять их все?