Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Нужна помощь с скриптом на питоне (http://forum.oszone.net/showthread.php?t=332628)

Patroklos 18-01-2018 18:33 2792336

Нужна помощь с скриптом на питоне
 
Здравствуйте, я скачиваю фото с инстаграма скриптом на питоне.
https://pypi.python.org/pypi/instaloader/3.2.1
Это единственное что я нашел что качает по тегам после того как злой Цукер запретил.
Так вот пока качаю по тегам на английском всё прекрасно.
Качаю я так: создал батник и прописал следующее
Код:

instaloader --filename-pattern={date}_{profile} #Nature --count 50
Но если я пишу тег на русском то питон его не распознаёт
Код:

Retrieving pictures with hashtag #????
Кодировка бат utf8, chcp 65001
То есть проблема именно в питоне. Виндовс 10 английская. Питон и скрипт самые свежие вчера установленные.
Сможете помочь?

shisik 18-01-2018 21:01 2792366

Цитата:

Цитата Patroklos
То есть проблема именно в питоне. »

Нет, проблема именно в кодировке символов, которые вы передате в скрипт. В венде это cp1251, пологаю.

Patroklos 19-01-2018 01:41 2792421

Код:

E:\soft\Python\Python37-32\Scripts>chcp
Active code page: 1251

E:\soft\Python\Python37-32\Scripts>instaloader --filename-pattern={date}_{profile} #природа --count 50
Retrieving pictures with hashtag #????


shisik 19-01-2018 01:58 2792424

Patroklos, значит так и есть. вы передаёте скрипту строку в cp1251, а надо utf8. Можно добавить в скрипт перекодировку.

Patroklos 19-01-2018 02:08 2792426

Это как и в предыдущем сообщении сразу в консоли
Код:

E:\soft\Python\Python37-32\Scripts>chcp 65001
Active code page: 65001

E:\soft\Python\Python37-32\Scripts>instaloader --filename-pattern={date}_{profile} #природа --count 50
Retrieving pictures with hashtag #???????

В вин консоли я много работаю. Основные грабли знаю. Это питоша шалит. А я в нём ни бум-бум.

shisik 19-01-2018 03:02 2792428

Цитата:

Цитата Patroklos
А я в нём ни бум-бум. »

Заметно. Питон работает с utf8. Я имею в виду 3 версию. Если ему передать строку в cp1251, то будет именно такой эффект. Решения два: или как-то передавать строку в utf8, или добавить в скрипт перекодирование.

Посмотрев скрипт подумалось, что может достаточно установить win_unicode_console

Patroklos 19-01-2018 03:20 2792429

Спасибо за то что помогаете. К сожалению совет с win_unicode_console не сработал.
Картина та же на месте русского знаки вопроса.

lxa85 22-01-2018 22:31 2793177

Patroklos, а виндовая консоль - принципиальный вариант?
Может PowerShell ?
Просто AFAIK именно консоль (cmd) довольно бестолковая вещь (да простят меня адепты)
и кириллицу он воспринимает не как cp1251, а как OEM866.
По крайней мере на этой кодировке он пишет, и вроде как должен быть несколько "умнее" чем cmd.
Хотя нагуглив Хабр (https://habrahabr.ru/post/321076/) проблем с ps так же хватает.
"Похожая"(?) проблема
И как я понял chcp - или не панацея, или надо правильно готовить.

Patroklos 24-01-2018 08:45 2793423

Цитата:

Цитата lxa85
а виндовая консоль - принципиальный вариант?
Может PowerShell ? »

Здравствуйте, использовать PoSh мне не приходило в голову. Хорошая идея надо будет попробовать.
Пока я решил проблему тем что в настройках виндовс установил использовать русский для программ не поддерживающих юникод.
Теперь я без проблем качаю по тегам на русском.
Хотя в принципе я был бы рад что бы спецы объяснили где проблема.
В смд, питоше или в кривоватом скрипте.
Спасибо за совет и ссылки.

salat 25-01-2018 01:42 2793636

Проблема не в питоне а в вызове скрипта через cmd.
Кодировку через chcp так не выставишь. У питона своя библиотека. Он по дефолту работает с кирилицей.
Гуглани референс по subprocess checkoutput.


Время: 01:44.

Время: 01:44.
© OSzone.net 2001-