Использую такой метод получения товаров, но т.к вк разрешает получать за раз только 200 товаров приходится снова использовать этот же код, только вручную прописывать смещение(offset) 200 и т.д, это занимает огромное кол-во времени с большой группой. Как можно оптимизировать код, чтобы парсило все товары без моего участия в смещении?(Прошу учесть, что просто сдвигать на 200 всегда не получится, т.к кол-во товаров не всегда делится на 200 и могут остаться не спаршенные товары)
$h = file_get_contents("https://api.vk.com/method/market.get?owner_id=-$group&offset=$offset&count=200&access_token=$token&v=5.59");
$tov = $array['response']['count']; //получаю общее кол-во товаров.
$array = json_decode($h,true);
Вы можете использовать метод execute для выполнения одновременно до 25 запросов. То есть, до 5 000 товаров Вы сможете получать за раз. Если нужно более - введите данный метод в цикл.
Вот пример кода для execute для вывода до 2 400 записей со стены сообщества:
var owner_id = Args.owner_id;
var posts_num = parseInt(Args.count);
var offset = parseInt(Args.offset);
//если меньше 100 - 1 запрос и на выход
if (posts_num <= 100) {
return API.wall.get({"owner_id": owner_id, "count": posts_num, "offset": offset}).items;
}
//если больше 2500 - ничего не выйдет, переопределяем переменную на 2500
if (posts_num > 2500) {
posts_num = 2500;
}
var out = {};
while (out.length < posts_num) {
var count = 100;
if (posts_num < 100) {
count = posts_num;
}
out = out + API.wall.get({"owner_id": owner_id, "count": count, "offset": offset}).items;
offset = offset + count;
};
return out;
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости