Парсинг пользователей из группы ВК

Пресет Как спарсить пользователей из группы ВК? 1.1

Доступно владельцам лицензии
  • Автор темы Автор темы Support
  • Дата начала Дата начала

Support

Administrator
Команда форума
A-Parser Enterprise
В тех поддержку часто обращаются с таким вопросом. Если попробовать парсить через сайт (традиционным способом), то увидим, что есть ограничение - максимум 1000 пользователей, и для больших групп данный способ не подходит. Но ВК позволяют получить всех пользователей группы через АПИ без каких-либо ограничений и авторизации. Для этого есть метод groups.getMembers. Поэтому используя его можно сделать простой пресет, который выведет весь список пользователей.
irNvL.png

Код:
eyJwcmVzZXQiOiJWSyBwYXJzZSB1c2VycyBmcm9tIGdyb3VwIiwidmFsdWUiOnsi
cHJlc2V0IjoiVksgcGFyc2UgdXNlcnMgZnJvbSBncm91cCIsInBhcnNlcnMiOltb
Ik5ldDo6SFRUUCIsImRlZmF1bHQiLHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJn
b29kQ29kZSIsInZhbHVlIjpbMjAwXX1dXSwicmVzdWx0c0Zvcm1hdCI6IlslIGxp
bWl0ID0gMTA7ICMgMSBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0
MzhcdTA0NDZcdTA0MzAgPSAxMDAwIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1
MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNVx1
MDQzOVxuXG5qc29uID0gdG9vbHMucGFyc2VKU09OKHAxLmRhdGEpO1xuRk9SRUFD
SCBqc29uLnJlc3BvbnNlLnVzZXJzO1xuXHR1aWQgXyAnOiAnIF8gZmlyc3RfbmFt
ZSBfICcgJyBfIGxhc3RfbmFtZSBfICcgKCcgXyBwaG90b19tYXhfb3JpZyBfIFwi
KVxcblwiO1xuRU5EO1xuXG5JRiBxdWVyeS5sdmwgPCBsaW1pdCAtIDEgJiYganNv
bi5yZXNwb25zZS51c2Vycy5zaXplID09IDEwMDA7XG5cdGxpbmsgPSBxdWVyeS5x
dWVyeS5tYXRjaCgnXiguKz8mb2Zmc2V0PSknKS4wO1xuXHRvZmZzZXQgPSAocXVl
cnkubHZsICsgMSkgKiAxMDAwO1xuXHR0b29scy5xdWVyeS5hZGQobGluayBfIG9m
ZnNldCk7XG5FTkQgJV0iLCJyZXN1bHRzU2F2ZVRvIjoiZmlsZSIsInJlc3VsdHNG
aWxlTmFtZSI6IiRkYXRlZmlsZS5mb3JtYXQoKS50eHQiLCJhZGRpdGlvbmFsRm9y
bWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJzdHJpbmciLCJxdWVyeUZvcm1hdCI6
WyJodHRwczovL2FwaS52ay5jb20vbWV0aG9kL2dyb3Vwcy5nZXRNZW1iZXJzP2dy
b3VwX2lkPSRxdWVyeSZmaWVsZHM9cGhvdG9fbWF4X29yaWcmb2Zmc2V0PTAiXSwi
dW5pcXVlUXVlcmllcyI6ZmFsc2UsInNhdmVGYWlsZWRRdWVyaWVzIjpmYWxzZSwi
aXRlcmF0b3JPcHRpb25zIjp7Im9uQWxsTGV2ZWxzIjpmYWxzZSwicXVlcnlCdWls
ZGVyc0FmdGVySXRlcmF0b3IiOmZhbHNlLCJxdWVyeUJ1aWxkZXJzT25BbGxMZXZl
bHMiOmZhbHNlfSwicmVzdWx0c09wdGlvbnMiOnsib3ZlcndyaXRlIjpmYWxzZX0s
ImRvTG9nIjoibm8iLCJrZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6ZmFs
c2UsInJlc3VsdHNQcmVwZW5kIjoiIiwicmVzdWx0c0FwcGVuZCI6IiIsInF1ZXJ5
QnVpbGRlcnMiOltdLCJyZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVycmlk
ZXMiOltdLCJydW5UYXNrT25Db21wbGV0ZSI6bnVsbCwidXNlUmVzdWx0c0ZpbGVB
c1F1ZXJpZXNGaWxlIjpmYWxzZSwicnVuVGFza09uQ29tcGxldGVDb25maWciOiJk
ZWZhdWx0IiwidG9vbHNKUyI6IiJ9fQ==
  • В пресете можно регулировать кол-во страниц для парсинга (1 страница = 1000 пользователей). Для этого в Общем формате результата есть переменная limit.
  • Также можно добавлять или убирать любые поля в результате, меняя список параметров в Общем формате запроса. Полный список полей есть в описании groups.getMembers.

Пример результата
 
Сейчас у ВК изменился формат
чтобы работало надо заменить users на items

Код:
[% limit = 10; # 1 страница = 1000 пользователей

json = tools.parseJSON(p1.data);
FOREACH json.response.items;
    uid _ ': ' _ first_name _ ' ' _ last_name _ ' (' _ photo_max_orig _ ")\n";
END;

IF query.lvl < limit - 1 && json.response.items.size == 1000;
    link = query.query.match('^(.+?&offset=)').0;
    offset = (query.lvl + 1) * 1000;
    tools.query.add(link _ offset);
END %]
 
данный парсер работает? файл с результатами пустой.
 
привет, подскажите плиз как сделать вывод в csv. + как добавлять свои поля в вывод csv.


в выводе в txt я прописал "новое поле" в ссылку
Код:
https://api.vk.com/method/groups.getMembers?group_id=$query&count=1000&fields=photo_max_orig&v=5.131&offset=0

добавил bdate + в выводе парсера добавил ' _ bdate _ '
Код:
https://api.vk.com/method/groups.getMembers?group_id=$query&count=1000&fields=photo_max_orig,bdate&v=5.131&offset=0

и всё добавилось, но во время тестов бывало вместо значение просто 1 лишний пробел был, вместо значения. может это я где то проглядел, а может там как то по особому нужно добавлять?)
 
Последнее редактирование:
пообщался с чатгпт и пришёл с ним к такому решению. подскажите плиз как добавить шапку для csv фаила?
Код:
[% limit = 51; # 1 страница = 1000 пользователей

json = tools.parseJSON(p1.data);
FOREACH json.response.items;
    tools.CSVline(id, first_name, last_name, photo_max_orig);
END;

next_from = json.response.next_from;

IF query.lvl < limit - 1 && next_from;
    link = query.query.match('^(.+?&offset=)').0;
    offset = (query.lvl + 1) * 1000;
    tools.query.add(link _ offset);
END %]
 
Назад
Верх