Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: u8 -*-
- from account import *
- from vklib import *
- vk = VKClient(delay_time=.5)
- vk.login(username, password)
- oid=-25788864
- o=0
- c=100
- max_likes=0
- max_likes_post=0
- max_reposts=0
- max_reposts_post=0
- total_likes=0
- total_reposts=0
- user_stats={}
- while 1:
- r=vk.api('wall.get', owner_id=oid, offset=o, count=c)
- for post in r['items']:
- if 'signer_id' in post:
- uid=post['signer_id']
- if not uid in user_stats:
- user_stats[uid] = {'posts': 0, 'likes': 0, 'reposts': 0, 'max_likes': 0, 'max_reposts': 0, 'max_likes_post': 0, 'max_reposts_post': 0}
- stat=user_stats[uid]
- stat['posts']+=1
- stat['likes']+=post['likes']['count']
- stat['reposts']+=post['reposts']['count']
- if stat['max_likes']<post['likes']['count']:
- stat['max_likes']=post['likes']['count']
- stat['max_likes_post']=post['id']
- if stat['max_reposts']<post['reposts']['count']:
- stat['max_reposts']=post['reposts']['count']
- stat['max_reposts_post']=post['id']
- total_likes+=post['likes']['count']
- total_reposts+=post['reposts']['count']
- if post['likes']['count']>max_likes:
- max_likes=post['likes']['count']
- max_likes_post=post['id']
- if post['reposts']['count']>max_reposts:
- max_reposts=post['reposts']['count']
- max_reposts_post=post['id']
- o+=c
- if o>=r['count']:
- break
- total_posts=r['count']
- print u"""
- Всего записей: {posts}
- Всего лайков: {likes}
- Всего репостов: {reposts}
- Среднее кол-во лайков: {mid_likes}
- Среднее кол-во репостов: {mid_reposts}
- Пост с максимальным количеством лайков http://vk.com/wall{oid}_{max_likes_post} ({max_likes})
- Пост с максимальным количеством репостов http://vk.com/wall{oid}_{max_reposts_post} ({max_reposts})
- """.format(oid=oid, max_likes=max_likes, max_likes_post=max_likes_post, max_reposts=max_reposts, max_reposts_post=max_reposts_post, posts=total_posts, likes=total_likes, reposts=total_reposts, mid_likes=total_likes/total_posts, mid_reposts=total_reposts/total_posts)
- print len(user_stats)
- data = ''
- for uid, stat in user_stats.items():
- print uid
- r=vk.api('users.get', user_ids=uid)
- data+=u'"{name}";http://vk.com/id{user_id};{posts};{likes};{reposts};{mid_likes};{mid_reposts};{max_likes};http://vk.com/wall{oid}_{max_likes_post};{max_reposts};http://vk.com/wall{oid}_{max_reposts_post}\n' .format(oid=oid, name=r[0]['first_name'] + ' ' + r[0]['last_name'], user_id=uid, mid_likes=stat['likes']/stat['posts'], mid_reposts=stat['reposts']/stat['posts'], **stat)
- open('data/stat.csv', 'w').write(data.encode('u8'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement