pyInstagram icon indicating copy to clipboard operation
pyInstagram copied to clipboard

Проблема с парсингом русских тегов

Open Ivanelgran opened this issue 5 years ago • 2 comments

При попытке вызова функции get_media() с числом записей - 1000, для любого тега из кириллицы, например "#коты", выдает ошибку: File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1212, in putheader values[i] = one_value.encode('latin-1') UnicodeEncodeError: 'latin-1' codec can't encode characters in position 33-35: ordinal not in range(256)

Проблема решилась изменение кодировки obj из utf-8 в url-encoded, в файле agents.py Можно ли предусмотреть решение этой проблемы в будущих версиях, или я упустил уже существующее?)

Ivanelgran avatar Apr 30 '19 12:04 Ivanelgran

Можно предусмотреть, сделайте, пожалуйста, pull request с Вашими изменениями, и прикрепите максимально возможную информацию об ошибке, мне это очень поможет!

OlegYurchik avatar Apr 30 '19 13:04 OlegYurchik

Можно предусмотреть, сделайте, пожалуйста, pull request с Вашими изменениями, и прикрепите максимально возможную информацию об ошибке, мне это очень поможет!

https://github.com/OlegYurchik/pyInstagram/blob/de6495836fc2b31c4080d376ff4af282a25edbb8/instagram/agents.py#L140

В 140 строке необходимо добавить quote (предварительно импортировав from urllib.parse import quote):

referer="https://instagram.com/" + obj.base_url + quote(getattr(obj, obj.primary_key)),

Это касаемо get_media при использовании WebAgent() для поиска медиа по тегам.

tapakeht avatar Sep 20 '20 13:09 tapakeht