Код выгружает инфу о подписчиках группы в csv
import vk_api, csv
token = "1234"
vk_session = vk_api.VkApi(token=token,app_id="1234")
vk = vk_session.get_api()
print(vk)
##Сохраняет бд Юзеров в FILENAME
def bdGroupUsers(group_id=29534144):
FILENAME = "out12.csv"
count_members = vk.groups.getMembers(group_id=group_id, count=0)["count"] #число участников в группе
while_count= count_members//11000 + 1
def code(offset=0):
code = '''
var i = 0;
var members = [];
var offset = '''+str(offset)+''';
while(i < 11){
members.push(API.groups.getMembers({"group_id": '''+str(group_id)+ ''', "offset": offset, "fields": "can_write_private_message, city"})["items"]);
i = i + 1;
offset = offset + 1000;
}
return members;
'''
return code
offset = 0
ku = 0
df=[]
columns = ["can_access_closed", "can_write_private_message", 'city', 'deactivated', 'first_name', 'id', 'is_closed', 'last_name'] #заголовки таблицы
with open(FILENAME, "w", newline="", encoding='utf8') as file:
writer = csv.DictWriter(file, fieldnames=columns)
writer.writeheader()
with open(FILENAME, "w", newline="", encoding='utf8') as file:
writer = csv.DictWriter(file, fieldnames=columns)
while ku <while_count-1:
y = vk.execute(code=code(offset))
for i in y:
for j in i:
writer.writerow(j)
print(ku)
offset+=11000
ku+=1
bdGroupUsers()
Скорость выгрузки около 1200-1800чел\сек. Прочитав о возможностях выгружать до 75 тысяч юзеров в сек результатом не очень доволен. Помогите, боги vk api, где моя глупейшая ошибка?