SonnySP
@SonnySP
Very Junior Java

VK Api запрос groups.getMembers. Как работает?

Доброго времени суток.

Пишу парсер для вконтакте, один из блоков вытягивает id участников группы, вот код.

ArrayList<String> getLinksList() throws IOException, ClientException, ApiException {
        ArrayList<String> linksList = new ArrayList<>();

        List<Integer> linkList = vkApiClient.groups().getMembers(actor).groupId(getGroupLink()).offset(getOffset()).execute().getItems();


        for (Integer friend : linkList) {
            linksList.add("https://vk.com/id"+friend+"\r\n");
        }
        return linksList;
    }

    Integer getMembersCount() throws ClientException, ApiException {
        actor = AuthorizationOnVkCom.getActor();
        return vkApiClient.groups().getMembers(actor).groupId(getGroupLink()).execute().getCount();
    }


Сначала контроллер запрашивает количество участников группы, на основе этого числа идёт прогресс бар, и запрашивается следующая порция участников(максимальное количество объектов в ответе == 1000).

Изначально тестировал на группе в 3к пользователей, всё хорошо работает. Потом стало интересно, как сделать парсинг закрытых групп. Ну а так как мне нужны только id участников, а эта информация общедоступна, то просто забил в свой парсер ссылку на одну закрытую группу. Он сразу же схватил и пошёл парсить.

Собственно проблема в чём. При парсинге группы с количеством участников больше 8 000, парсер встаёт как раз на этих 8 тысячах. Пробовал добавить задержку, не помогло.

Есть какие нибудь идеи?
  • Вопрос задан
  • 1308 просмотров
Решения вопроса 1
SonnySP
@SonnySP Автор вопроса
Very Junior Java
Каюсь. Я ставил задержку в 100мс, ничего не сработало.

Экспериментальным путем выяснил минимально возможную задержку в 221мс(больше можно, но зачем?), меньше задержку уже не воспринимает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽