Показать полную графическую версию : Нужна помощь с скриптом на питоне
Patroklos
18-01-2018, 18:33
Здравствуйте, я скачиваю фото с инстаграма скриптом на питоне.
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 английская. Питон и скрипт самые свежие вчера установленные.
Сможете помочь?
То есть проблема именно в питоне. »
Нет, проблема именно в кодировке символов, которые вы передате в скрипт. В венде это cp1251, пологаю.
Patroklos
19-01-2018, 01:41
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 #????
Patroklos, значит так и есть. вы передаёте скрипту строку в cp1251, а надо utf8. Можно добавить в скрипт перекодировку.
Patroklos
19-01-2018, 02:08
Это как и в предыдущем сообщении сразу в консоли
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 #???????
В вин консоли я много работаю. Основные грабли знаю. Это питоша шалит. А я в нём ни бум-бум.
А я в нём ни бум-бум. »
Заметно. Питон работает с utf8. Я имею в виду 3 версию. Если ему передать строку в cp1251, то будет именно такой эффект. Решения два: или как-то передавать строку в utf8, или добавить в скрипт перекодирование.
Посмотрев скрипт подумалось, что может достаточно установить win_unicode_console
Patroklos
19-01-2018, 03:20
Спасибо за то что помогаете. К сожалению совет с win_unicode_console не сработал.
Картина та же на месте русского знаки вопроса.
Patroklos, а виндовая консоль - принципиальный вариант?
Может PowerShell ?
Просто AFAIK именно консоль (cmd) довольно бестолковая вещь (да простят меня адепты)
и кириллицу он воспринимает не как cp1251, а как OEM866.
По крайней мере на этой кодировке он пишет, и вроде как должен быть несколько "умнее" чем cmd.
Хотя нагуглив Хабр (https://habrahabr.ru/post/321076/) проблем с ps так же хватает.
"Похожая"(?) проблема (http://forum.oszone.net/nextoldesttothread-152505.html)
И как я понял chcp - или не панацея, или надо правильно готовить.
Patroklos
24-01-2018, 08:45
а виндовая консоль - принципиальный вариант?
Может PowerShell ? »
Здравствуйте, использовать PoSh мне не приходило в голову. Хорошая идея надо будет попробовать.
Пока я решил проблему тем что в настройках виндовс установил использовать русский для программ не поддерживающих юникод.
Теперь я без проблем качаю по тегам на русском.
Хотя в принципе я был бы рад что бы спецы объяснили где проблема.
В смд, питоше или в кривоватом скрипте.
Спасибо за совет и ссылки.
Проблема не в питоне а в вызове скрипта через cmd.
Кодировку через chcp так не выставишь. У питона своя библиотека. Он по дефолту работает с кирилицей.
Гуглани референс по subprocess checkoutput.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.