@TechNOIR

Powershell+VK Api. Как обойти лимит 1000 объектов?

Доброго времени суток,товарищи!
Помогите пожалуйста с проблемкой.
Набросал скрипт для работы с API VK, но не могу обойти ограничение по количеству объектов.

Подскажете может какие то ошибки по скрипту? Я уже в тупик зашел..
$i = 0
$uri = "https://api.vk.com/method/users.search?education_form='Очное отделение'&university_year=2019&graduation=2019&country=1&university_country=1&fields=domain&count=900&out=1&offset="+$i+"&access_token=03bdb304a427de9d761ae22c008d7a1995f2fcd2a5fae4dd5f4e2b3ae457fa2c1f8bf665cdfe6ec5ac107&v=5.68"
$request = Invoke-WebRequest -Uri $uri
$response_array = $request.content | ConvertFrom-Json 
$request_count = $response_array.response.count
"Всего: " + $request_count
#$result = $null
$request_array = $null

for ($i = 0; $i -le $request_count ; $i=$i+900)
{ 
write-host $i
$uri = "https://api.vk.com/method/users.search?education_form='Очное отделение'&university_year=2019&graduation=2019&country=1&university_country=1&fields=domain&count=900&out=1&offset="+$i+"&access_token=03bdb304a427de9d761ae22c008d7a1995f2fcd2a5fae4dd5f4e2b3ae457fa2c1f8bf665cdfe6ec5ac107&v=5.68"
write-host $uri
$request = Invoke-WebRequest -Uri $uri
$response_array = ($request.content | ConvertFrom-Json).response.items
$request_array = $request_array + $response_array
write-host("Получаем $i")
Start-Sleep -m 340    
}


Спасибо заранее!
  • Вопрос задан
  • 949 просмотров
Решения вопроса 2
Ahen
@Ahen
Универсальный дилетант
Обратите внимание — даже при использовании параметра offset для получения информации доступны только первые 1000 результатов.

Играйтесь с параметрами, в частности должно хватить -
sort - прогоняем два раза с разными типами сортировки
sex - прогоняем два раза с разным полом
age_from, age_to - прогоняем сколько вам угодно раз

Суть - мы меняем параметры поиска и получаем новый список пользователей, отличный от предыдущих результатов. Склеиваем списки и удаляем дубликаты.
Как мне кажется, будет достаточно нескольких комбинаций параметров sex и age_to (например пол мужской - возраст до 20, пол мужской - возраст от 20 до 30, пол мужской - возраст от 30, повторить комбинации с женским полом).
Ответ написан
Комментировать
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
https://vk.com/dev/users.search
offset - смещение относительно первого найденного пользователя для выборки определенного подмножества.
т.е. первые 1000 забрал с offset 0. дальше ставишь offset 1000 и забираешь уже с 1000 до 2000 и т.д.

UPD: даже при использовании параметра offset для получения информации доступны только первые 1000 результатов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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