Задать вопрос
@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    
}


Спасибо заранее!
  • Вопрос задан
  • 1113 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 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 результатов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы