при попытке поменять формат строки на JSON выводится это
image.png
@xclsv Все 5, там размер картинок разный для каждого языка. Поэтому пытаюсь получить размер каждой и скачать максимальную. У меня получается выбрать язык в браузере, скопировать от туда заголовки с куками в гет запрос БАСа и таким образом удается получить урл картинок для каждого языка. Но как сделать так, чтобы куки и заголовки менялись и сохранялись после операции пока не разобрался.
@senerg
Полагаю, куки каждого из языков нужно получить только один раз. После этого их можно сохранить в переменные и подставлять перед каждым запросом. Так пробовали делать?
Только перед каждым запросом необходимо будет выполнить сброс http-клиента, т.к. он собирает куки с сайта также, как обычный браузер.
@xclsv Может я не правильно понял... Я копирую вот это:
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 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-US;q=0.9,en;q=0.8
Cookie: ali_apache_id=11.139.3.114.1539544824211.210354.4; xman_f=VT5i/xhfRGEtXhPbuoyy+mkiTea8y2XOIC+knRvokYQXrTjccoNb2IfbcX00d1WTZwVpgiUgP3oJ1lI9gMmw4uje0Nm+EANgtSW9hac69ZFCmBlEegStIw==; AKA_A2=A; _ga=GA1.2.1139108849.1539544825; _gid=GA1.2.1980666095.1539544825; _ym_uid=1539544825383995269; _ym_d=1539544825; _ym_isad=1; aep_history=keywords%5E%0Akeywords%09%0A%0Aproduct_selloffer%5E%0Aproduct_selloffer%0932808065488; _ym_visorc_29739640=b; cna=+oRKFPAE9HECAU3eZNOiy4P9; __utma=3375712.1139108849.1539544825.1539544850.1539544850.1; __utmz=3375712.1539544850.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=3375712.1.10.1539544850; xman_us_f=x_locale=en_US&x_l=0; aep_usuc_f=site=glo&c_tp=RUB®ion=RU&b_locale=en_US; _m_h5_tk=738f011176498216d82049416c4581ca_1539547433711; _m_h5_tk_enc=a24fd858cd41e57c2efb64e2864a99ce; intl_common_forever=yan6CSl1iLWZFiNH0b5cwRsio1MTli+dE5s5+cmZhv/WzboIoSwGbw==; _uab_collina=153954554835345347403835; ali_apache_track=; RT="sl=2&ss=1539545542307&tt=3558&obo=0&sh=1539545549498%3D2%3A0%3A3558%2C1539545543837%3D1%3A0%3A1526&dm=aliexpress.com&si=c519c516-0149-422a-950c-2224a005404a&se=900&bcn=%2F%2F364bf6be.akstat.io%2F&ld=1539545549498&r=https%3A%2F%2Fwww.aliexpress.com%2Fitem%2FUSLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin%2F32808065488.html&ul=1539545557573&hd=1539545557604"; isg=BDMz7GF-bBno-SDNQ_r-d3hGwjddaMcqb9akhOXQ1dKJ5FOGbTv1eoF9mkyvxB8i
Прямо в гет запрос баса из фидлера. Значит используются эти заголовки и куки только при этом гет запросе и не меняются в дальнейшем. А как тоже самое получить в басе не заходя на сайт, а только по http?
@xclsv Я копировал из фидлера, открыв при этом сайт через обычный браузер, не через басовский. Если сделать как вы говорите придется в скрипте дописывать не только загрузку адреса, но еще и клики по языковым настройкам для всех пяти языков сайта.
@senerg said in Как в GET запросе указать язык сайта?:
@xclsv Если сделать как вы говорите придется в скрипте дописывать не только загрузку адреса, но еще и клики по языковым настройкам для всех пяти языков сайта.
Не обязательно хранить эшны загрузки сайта в браузере и кликов по настройкам. Они нужны только для однократного получения кук. Достаточно воспроизвести их один раз, сохранить их в файл или как константы и использовать скрипт уже без этих экшнов.
Вот и ответ на Ваш стартовый вопрос.
Сохраняйте куки для каждого языка в отдельные переменные и подставляйте перед каждым запросом.
@xclsv , даже после загрузки профиля и отображения страницы алиэкспресс в браузере баса на нужном языке гет запрос без заполненного поля с заголовками и куками не работает, пишет при следующем действии:
Can't resolve query //*[@id='j-detail-gallery-main']//script/text()
Т.е. не может найти скрипт, который там должен быть, значит страница не приходит после гет запроса.
Будем надеяться на @Fox, он тут один из самых грамотных.
попробую призвать @Fox. Он то должен знать =)

Чувствую призыв пользователя! :D
Куки, которые хранятся в профиле тоже работают для гет запросов?
Нет, профиль создаётся исключительно для браузера. В папке с профилем есть файл Cookies, но использовать его не получится, потому что они не в json формате:

А принципиально использовать профили? Почему нельзя обойтись константами для каждой из языковых Кук?
@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®ion=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:




Вам какой вид фотографий нужен?
Для 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
Вот здесь вы ошибаетесь)
Можно с уверенностью сказать, что по качеству третьей картинки этого товара победил французский сайт USLION-T-l-phone:

Откройте самую тяжелую фотку в фотошопе, поверх киньте любую другую. Увеличьте максимально, до появления сетки и пощелкайте на глазик. Разница в качестве станет очевидной если знакомы с принципами сжатия 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
И вторая ссылка тоже будет французской.