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

KeyError: 'thumbnail_resources' #79

Open AlexXG0152 opened 4 years ago

AlexXG0152 commented 4 years ago

When i'm try example from readme - something went wrong today. Yesterday everything been ok)

`Traceback (most recent call last): File "C:\Python\lib\site-packages\instagram\agents.py", line 102, in get_media m.set_data(node) File "C:\Python\lib\site-packages\instagram\entities.py", line 162, in set_data child.resources = [resource["src"] for resource in edge["node"]["thumbnail_resources"]] KeyError: 'thumbnail_resources'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Python\tryinstagram.py", line 11, in media1, pointer = agent.get_media(account) File "C:\Python\lib\site-packages\instagram\exceptions.py", line 119, in wrapper raise exception File "C:\Python\lib\site-packages\instagram\exceptions.py", line 114, in wrapper return func(obj, *args, kwargs) File "C:\Python\lib\site-packages\instagram\agents.py", line 123, in get_media raise UnexpectedResponse( instagram.exceptions.UnexpectedResponse: Get unexpected response from 'https://www.instagram.com/****' Error: 'thumbnail_resources'`

yudgnahk commented 4 years ago

I got the same problem.

KoNeTaLL commented 4 years ago

As a temporary solution to the problem you can simply delete or comment lines 159-162 in the file entities.py. If you do not use child.resources in your program, this temporary solution should suit you.

The error itself appears if the media is an album ('__typename': 'GraphSidecar'). For some reason, the response does not contain ["node"] ["display_resources"] or ["node"] ["thumbnail_resources"], although the browser still has them. I've come to the point that it all starts with another 41 lines agents.py (response = self.get_request(query, **settings)) since already at this stage, response. text does not contain ["node"] ["display_resources"] or ["node"] ["thumbnail_resources"] for albums.


Как временное решение проблемы можно просто удалить или закомментировать строки 159-162 в файле entities.py. Если вы в своей программе не используете child.resources данное временное решение должно вас устроить.

Сама ошибка появляется если медиа является альбомом ('__typename': 'GraphSidecar'). По какой-то причине в ответе отсутствуют ["node"]["display_resources"] или ["node"]["thumbnail_resources"], хотя в браузере они по прежнему есть. Я пришел к тому, что это все начинается еще с 41 строки agents.py (response = self.get_request(query, **settings)) так как уже на этом этапе response.text не содержит ["node"]["display_resources"] или ["node"]["thumbnail_resources"] для альбомов.