Skip to content

Instantly share code, notes, and snippets.

@krared
Created August 17, 2018 00:20
Show Gist options
  • Save krared/8f5f6abd8a1d8342def3697a982dde35 to your computer and use it in GitHub Desktop.
Save krared/8f5f6abd8a1d8342def3697a982dde35 to your computer and use it in GitHub Desktop.
export your groups, fav users and fav groups to xls from vk.com
# -*- coding: utf-8 -*-
import urllib, urllib2, json, requests, time, os
from urllib import urlretrieve
import pandas as pd
import numpy as np
from time import strftime
# https://oauth.vk.com/authorize?client_id=666%display=page&scope=groups,friends&response_type=token&v=5.80
vk_token = ""
def vkMethod(method, d={}):
global response
print "Запрос к API"
url = 'https://api.vk.com/method/%s' % (method)
d.update({'access_token': vk_token, 'v':5.80})
print d
print
response = json.loads(requests.post(url, d).text)
print response
if 'error' in response:
print 'VK API error: %s' % (response['error']['error_msg'])
else:
print "Ответ получен"
return response
# load ids of groups
d = {"user_id":1, "count":1000}
response = vkMethod("groups.get", d)
# make list like string with commas
list_groups = response['response']['items']
myList = ','.join(map(str, list_groups))
# load info of groups
d = {"group_ids":myList}
response = vkMethod("groups.getById", d)
# create df
list_df = ['name','screen_name','url']
df = pd.DataFrame(columns = list_df)
# df.id_mis = fio_pm.id_mis.astype(int)
for i in xrange(0,len(response['response'])):
new_line = {'name':response['response'][i]['name'],'screen_name': response['response'][i]['screen_name'], 'url':'https://vk.com/club'+str(response['response'][i]['id'])}
df = df.append(new_line, ignore_index=True)
# save df
dt=strftime('%d-%b-%y')
# xls
writer = pd.ExcelWriter('output_{}.xlsx'.format(dt))
df.to_excel(writer,'Groups')
writer.save()
# Favorite users
d = {}
response = vkMethod("fave.getUsers", d)
list_df = ['first_name','last_name','url']
df = pd.DataFrame(columns = list_df)
# df.id_mis = fio_pm.id_mis.astype(int)
for i in xrange(0,(response['response']['count'])):
new_line = {'first_name':response['response']['items'][i]['first_name'],'last_name': response['response']['items'][i]['last_name'], 'url':'https://vk.com/id'+str(response['response']['items'][i]['id'])}
df = df.append(new_line, ignore_index=True)
# writer = pd.ExcelWriter('output_{}.xlsx'.format(dt))
df.to_excel(writer,'Fav_Users')
writer.save()
# Favorite links
d = {'count':1000}
response = vkMethod("fave.getLinks", d)
list_df = ['title','description','id','url']
df = pd.DataFrame(columns = list_df)
# df.id_mis = fio_pm.id_mis.astype(int)
for i in xrange(0,response['response']['count']):
new_line = {'title':response['response']['items'][i]['title'],'description': response['response']['items'][i]['description'],'id':response['response']['items'][i]['id'], 'url':response['response']['items'][i]['url']}
df = df.append(new_line, ignore_index=True)
# writer = pd.ExcelWriter('output_{}.xlsx'.format(dt))
df.to_excel(writer,'Fav_links')
writer.save()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment