@Cipo

Как получить все id подписчиков в VK через API?

Мне нужно получить id всех подписчиков аккаунта, использую метод groups.getMembers, но он дает только 1000 id. Знаю, что нужно использовать offset, но не знаю как его реализовать.

m['members_count'] - это количество подписчиков паблика, который я ввожу

count = m['members_count']

response_for_getMembers = requests.get('https://api.vk.com/method/groups.getMembers',
                        params={
                            'access_token':token,
                            'v': version,
                            'group_id': group_id,
                            'count': count

})


Естественно код выведет ошибку, потому что count = 204938, а параметр принимает 1000
  • Вопрос задан
  • 135 просмотров
Решения вопроса 2
botermain
@botermain
Цикл с шагом, проще некуда:
count = m['members_count']

for i in range(0,count+1,1000):
    response_for_getMembers = requests.get('https://api.vk.com/method/groups.getMembers',
                            params={
                                'access_token':token,
                                'v': version,
                                'group_id': group_id,
                                'count': 1000,
                                'offset': i
    })
Ответ написан
Комментировать
@alexalexes
Давайте методом аналогии.
У вас есть путь в 204938 мм, его нужно промерить линейкой в 1000 мм, чтобы "пощупать" каждый мм?
Можно выставлять ноль линейки на offset количество мм, но нельзя удлинять линейку.
Нужно взять линейку поставить ноль на 0 мм пути (offset = 0), сделать замер (выборку подписчиков) и переставить ноль линейки на 1000 мм вперед (offset = 1000), опять сделать выборку, потом опять переставить на тоже расстояние вперед (offset = 2000) и так, пока у вас offset не станет >= 204938, или пока вам API не запретит делать следующий замер.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы