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

Похоже что инстаграм перестал отдавать end_cursor при определенном количестве запросов. #22

Open T3hVermili0n opened 5 years ago

T3hVermili0n commented 5 years ago

При попытке выгрузить все комментарии с поста, в pointer приходит None, бывает что цикл получает pointer несколько раз, но до конца не доходит. Проблема почему то именно с комментариями. Пробовал и через анонимного и через авторизованного агента. Для примера, пост с 900+ комментами, парсится только около 400, потом пишет якобы дальше ничего нет. Притом это может быть совершенно по разному, то есть пост на котором 70+ комментов, может вернуть только 4 и написать что это все. Новая защита от инстаграм?

T3hVermili0n commented 5 years ago

Хотя с некоторыми постами нет никаких проблем. Пока не понимаю, это был временный глюк или постоянный...

OlegYurchik commented 5 years ago

Да, я и до этого замечал проблему с загрузкой комментариев, но вот в чём именно ситуация - понять не могу. Использовал вот такой код:

from instaparser.agents import Agent
from instaparser.entities import Media

agent = Agent()
media = Media("BpyYw_lgIPV")

comments, pointer = agent.get_comments(media)
print("COUNT: %s" % len(comments))
print("POINTER: %s" % pointer)
while not pointer is None:
    tmp, pointer = agent.get_comments(media, pointer=pointer)
    print("COUNT: %s" % len(tmp))
    print("POINTER: %s" % pointer)
    comments += tmp

print("RESULT COUNT: %s" % len(comments))
print("POINTER: %s" % pointer)

Из 3402 комментариев загрузил 3070

Gogelgans commented 4 years ago

У меня есть теория, что это происходит из-за ответов на комментарии. Библиотека не умеет их getать. Инстаграм считает ответы на комментарии как комментарии на пост. Поэтому если ответов на комментарии у поста нет, то все гетается нормально. ( В моем случае 24/24). Если появляются ответы на комментарии- сразу общее количество ломается.

Gogelgans commented 4 years ago

Проблема явно при get запросах, ибо ответы к коментариям ( с вложенным списком к примеру) не все забираются, могут игнорироваться в принципе ответы. Обычные get запросы через requests так же ничего не дают. Тот комент который есть, его нет в json