Created
August 17, 2018 00:20
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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 | |
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