OlegYurchik / pyInstagram

This is a simple and easy-to-use library for interacting with the Instagram. The library works through the web interface of the Instagram and does not depend on the official API
MIT License
232 stars 49 forks source link

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

Open Ivanelgran opened 5 years ago

Ivanelgran commented 5 years ago

При попытке вызова функции 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 Можно ли предусмотреть решение этой проблемы в будущих версиях, или я упустил уже существующее?)

OlegYurchik commented 5 years ago

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

tapakeht commented 3 years ago

Можно предусмотреть, сделайте, пожалуйста, 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() для поиска медиа по тегам.