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

Поддержка
  • @xclsv

    попробую призвать @Fox. Он то должен знать =)

    0_1539617254744_30fc0070-06be-48c7-8d2f-13941317c04d-изображение.png
    Чувствую призыв пользователя! :D


    Куки, которые хранятся в профиле тоже работают для гет запросов?

    Нет, профиль создаётся исключительно для браузера. В папке с профилем есть файл Cookies, но использовать его не получится, потому что они не в json формате:
    0_1539617677211_424b4039-7047-44a9-8d0b-7c785a0b1349-изображение.png

  • @fox Спасибо за ответ. Как все не просто с этим БАСом.

  • А принципиально использовать профили? Почему нельзя обойтись константами для каждой из языковых Кук?

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

    значит страница не приходит после гет запроса.

    Советую все-таки посмотреть, что там приходит в ответ через экшн Содержание ответа

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

    Содержание ответа

    SAVED_CONTENT: "",
    

    В анализе трафика:

    Url: https://www.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html
    Status: 302
    
    Content-Type: text/html;charset=UTF-8
    Content-Length: 0
    P3P: CP="CAO PSA OUR"
    Resin-Trace: ali_resin_trace=ae_subsite=rus,RU,ru_RU,RUB
    Location: https://ru.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html
    Content-Language: en-US
    Access-Control-Allow-Origin: https://hz.aliexpress.com
    Server: Tengine/Aserver
    Strict-Transport-Security: max-age=0
    Timing-Allow-Origin: *
    Date: Mon, 15 Oct 2018 16:11:52 GMT
    Connection: keep-alive
    Set-Cookie: ali_apache_id=11.139.3.112.1539619912515.208578.2; path=/; domain=.aliexpress.com; expires=Wed, 30-Nov-2084 01:01:01 GMT
    Set-Cookie: xman_us_f=x_locale=ru_RU&x_l=0; Domain=.aliexpress.com; Expires=Sat, 02-Nov-2086 19:25:59 GMT; Path=/
    Set-Cookie: acs_usuc_t=x_csrf=4bif3hk71ip3&acs_rt=41a8a79087734363aa7aa564c9aa4da3; Domain=.aliexpress.com; Path=/
    Set-Cookie: intl_locale=ru_RU; Domain=.aliexpress.com; Path=/
    Set-Cookie: aep_usuc_f=site=rus&c_tp=RUB&region=RU&b_locale=ru_RU; Domain=.aliexpress.com; Expires=Sat, 02-Nov-2086 19:25:59 GMT; Path=/
    Set-Cookie: xman_t=Aw8w/lHrcFi/q1eTWyKRf+VcpNaZxFwIFuXFslELR2yiHHSo971j124+57UhOetK; Domain=.aliexpress.com; Path=/; HttpOnly
    Set-Cookie: intl_common_forever=9l5UeuPvxwSaTTWlEk3hCOvFg0o1g+h8OjQA6Hf8KLQiPn2vtpCfhQ==; Domain=.aliexpress.com; Expires=Sat, 02-Nov-2086 19:25:59 GMT; Path=/; HttpOnly
    Set-Cookie: xman_f=9dSgsamApCz40sHThBzFmmoNnF/G9Jp4WQJH8amcpkR8DBFCxRhrXxJhjIf94tfuD7Iv+IMrfManYhv/eK0j/3wfmsofy0Z7By3ybx974x2U5/9ZzRNbVA==; Domain=.aliexpress.com; Expires=Sat, 02-Nov-2086 19:25:59 GMT; Path=/; HttpOnly
    Set-Cookie: ali_apache_track=; Domain=.aliexpress.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
    Set-Cookie: ali_apache_tracktmp=; Domain=.aliexpress.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
    Server-Timing: cdn-cache; desc=MISS
    Server-Timing: edge; dur=22
    Server-Timing: origin; dur=10
    

    Только я тут мало чего понимаю. Похоже @fox прав.

  • Статус 302 означает переадресацию. В теле ответа на этот запрос ничего и не должно быть. Переадресация, в данном случае на ru.aliexpress.com. Можно сразу делать запрос туда. А ещё лучше попробовать делать запросы к языковым поддоменам Али.
    @senerg стоит галочка следовать переадресациям в запросе?

  • @xclsv Так как я зажожу с российского IP aliexpress.com автоматически редиректит меня на ru.aliexpress.com. Но если один раз зайти на сайт и там выбрать язык английский или любой другой, то это сохранится в куки и при следующем заходе редиректа не будет. Так как я подключил профиль, в котором уже заходил на английский сайт, то в браузере баса редиректа нет и открывается сразу английская версия. И проблема лишь в том, что куки профиля не влияют на гет запрос. Поправьте меня если я не прав.

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

    галочка следовать переадресациям в запросе?

    Эта галочка не стоит для английской версии и стоит для всех остальных. При сохраненных кукисах такой вариант позволяет получать страницы на всех языках

  • @senerg said in Сохранение картинок через гет запрос:

    названия начинаются на "uslion-iPhone". А если посмотрите на мой скриншот выше, это скриншот из браузера хром, там названия начинаются на "USLION-Phone". Через гет запрос парсятся другие url.
    Вопрос в том как БАС заставить получать эти url именно в таком виде "USLION-Phone", как на скриншоте?

    Смотрю сейчас свойства скаченных фотографий, и uslion-iPhone явно лучше чем USLION-Phone:
    0_1539629479131_8e20695c-0a9c-42a2-a699-8e98b32231f9-изображение.png0_1539629489945_aed88935-4e76-446a-b445-aed86aeee3f5-изображение.png
    0_1539629548297_ffb48163-a3e3-4269-be35-79df0c06254d-изображение.png0_1539629557668_81d6bb85-7caf-4af9-aef5-e43a7b338a95-изображение.png

    Вам какой вид фотографий нужен?


    Для aliexpress.com указывать страну можно без заголовков, в самом коде есть для этого ссылки

    <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.aliexpress.com/item/32808065488.html" />
                                    <link rel="alternate" hreflang="en" href="https://www.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="it" href="https:https://it.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="fr" href="https:https://fr.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="de" href="https:https://de.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="ru" href="https:https://ru.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="es" href="https:https://es.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="pt" href="https:https://pt.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="ja" href="https:https://ja.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="ko" href="https:https://ko.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="nl" href="https:https://nl.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="ar" href="https:https://ar.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="tr" href="https:https://tr.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="vi" href="https:https://vi.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="he" href="https:https://he.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="th" href="https:https://th.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
                                    <link rel="alternate" hreflang="pl" href="https:https://pl.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html" />
    

    Класс hreflang уже своим названием намекает :D

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

    Смотрю сейчас свойства скаченных фотографий, и uslion-iPhone явно лучше чем USLION-Phone

    Вот здесь вы ошибаетесь)

    1. По вашим скринам не виден вес файлов, поэтому сказать какие из них качественнее невозможно.
    2. Наличие заполненных альт тегов вообще не говорит ни о чем. Абсолютное большинство фото на али ворованное либо у иностранных владельцев, либо у других таких же китайских магазинов. Скорее всего господин Jason Lu, если такой есть в природе, просто заполнил эти данные в фотошопе, тоже ворованном, разумеется. С трудом представляю себе что нужно курить чтобы снимать чехол телефона на 16 диафрагме с исо 50.

    Можно с уверенностью сказать, что по качеству третьей картинки этого товара победил французский сайт USLION-T-l-phone:
    0_1539632661446_c1c3e284-eb34-48c8-9c4a-712922b86c8e-image.png

    Откройте самую тяжелую фотку в фотошопе, поверх киньте любую другую. Увеличьте максимально, до появления сетки и пощелкайте на глазик. Разница в качестве станет очевидной если знакомы с принципами сжатия jpeg.

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

    указывать страну можно без заголовков

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

    Зайдите сюда:
    https://fr.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html
    А потом сразу сюда:
    https://www.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html

    И вторая ссылка тоже будет французской.

  • @senerg
    Я, кажется, запутался.
    Проблема решена или нет?
    Если нет, поставьте, пожалуйста, корректно задачу. Попробую сам поковырять али.

  • @xclsv, Меня @Fox спросил, я ответил.
    Да, проблема решена.Сначала захожу через браузер баса, сохраняю куки браузера, копирую их в http. Потом делаю гет запрос, получаю картинки, сохраняю куки браузера (или может надо сохранять куки http?). Единственный минус - реклама, которая выскакивает при первом посещении али продолжает появляться даже после сохранения куков. Когда использовал профиль такого не было. Если знаете в чем причина подскажите, пожалуйста.

  • @senerg понял =)
    Рекламу заблокируйте через Запретить запрос

  • @xclsv это как?

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

    Указывать можно. Но если в куках лежит сайт с прошлого посещения будет редирект на него. А без куков гет запрос не работает тут, увы.
    Зайдите сюда:
    https://fr.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html
    А потом сразу сюда:
    https://www.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html
    И вторая ссылка тоже будет французской.

    Всё прекрасно переходится
    0_1539681269030_7bf7b8ef-a3ef-4557-9fff-1de78fdb08c0-изображение.png

    Вот тестовый скрипт

    Вот вариант с циклом


    По вашим скринам не виден вес файлов, поэтому сказать какие из них качественнее невозможно.

    0_1539681984363_c690fb7d-73f4-45cd-9427-32786a99a3a3-изображение.png


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

    Вот тестовый скрипт

    Ваш проект не работает если заходить на англ. сайт.
    0_1539701220714_f6afe99e-484f-48ea-9144-50ab55814fd6-image.png
    Как в таком случае быть?

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

    Вот вариант с циклом

    А в цикле вообще нельзя пустое значение вместо ru добавить.

  • @xclsv said in Как в GET запросе указать язык сайта?:
    А как определить запрос, который нужно заблокировать. В фидлере их 200 штук и какой из них за рекламный баннер отвечает не понятно.
    На странице я его нашел, но для других языков он наверняка будет отличаться
    0_1539712499872_896b41dc-3a59-48f6-a441-59ba236652cc-image.png

  • @senerg
    Я обычно просто в браузере смотрю код баннера. Щелкаю по нему правой кнопкой. Там выбираем Исследовать элемент. Смотрим адрес, с которого он подгружается.
    Конечно, неверно будет блокировать только этот адрес. Экшн поддерживает маски запросов. Можно подобрать.

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

    Я обычно просто в браузере смотрю код баннера. Щелкаю по нему правой кнопкой. Там выбираем Исследовать элемент. Смотрим адрес, с которого он подгружается.

    Я так и сделал на картинке выше. А адрес-то там где увидеть? Может где-то пример есть как подобное реализовано, не знаете?

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

    А адрес-то там где увидеть?

    Как правило, он хранится в атрибуте href тега <a>, но не всегда.
    Не знаю, как в али. В гисметео сделано так:
    0_1539773684027_917373a7-951b-4e5b-8391-1a287696da05-image.png
    Даже код смотреть не обязательно. По маске url можно делать исключения.

  • @xclsv Как вы сделали это видимым? У меня даже строчки такой нет.
    0_1539854064540_51bcc4e4-69b9-405b-adf6-9636fe88a227-image.png