def stat_user(search_time=None, force_update=False): """ 统计用户信息 """ if not search_time: search_time = datetime.datetime.now() search_time = "%s-%s-%s" % (now_time.year, now_time.month, now_time.day) content = Content.get(search_time) if not content: return #遍历所有用户 for types, ids in content.weibo.iteritems(): for id, context in ids.iteritems(): user = Weibo.get(id) #如果还没有今天的统计就统计一下 if not user.stat_info.get(search_time) or force_update: create_at = [] for tmp_content in context: if not tmp_content.get('created_at'): continue print types, tmp_content['created_at'] create_at.append( tmp_content['created_at'].split(' ')[3].split(':')[0]) user.stat_info[search_time] = {} user.stat_info[search_time] = { 'send_count': len(context), 'create_at': create_at } #print ,create_atuser.stat_info[search_time] user.put()
def stat_user(search_time=None,force_update=False): """ 统计用户信息 """ if not search_time: search_time = datetime.datetime.now() search_time = "%s-%s-%s"%(now_time.year,now_time.month,now_time.day) content = Content.get(search_time) if not content: return #遍历所有用户 for types,ids in content.weibo.iteritems(): for id,context in ids.iteritems(): user = Weibo.get(id) #如果还没有今天的统计就统计一下 if not user.stat_info.get(search_time) or force_update: create_at = [] for tmp_content in context: if not tmp_content.get('created_at'):continue print types,tmp_content['created_at'] create_at.append(tmp_content['created_at'].split(' ')[3].split(':')[0]) user.stat_info[search_time] = {} user.stat_info[search_time] = {'send_count':len(context),'create_at':create_at} #print ,create_atuser.stat_info[search_time] user.put()
def search_user(keywords, debug=False, force_update=False): """ 根据类别更新微博用户的常用信息 如果keywords没有会出错 应该先执行search_users查询结果 debug:调试模式只输出 不保存数据 force_update:强制更新所有微博(以为新浪对开发者有请求次数限制 尽量少做没用的请求) """ if keywords not in weibo_user.users: weibo_user.users[keywords] = [] weibo_user.put() for item in weibo_user.users[keywords]: #如果已经存在这个用户了 就不在更新数据 除非强制刷新模式 wb = Weibo.get(item) if wb and not force_update: continue #item:微博id try: result = client.users.show.get(uid=item) except Exception, e: print e continue user_info = dict(result) if not wb: wb = Weibo._install(item) wb.screen_name = user_info['screen_name'] wb.statuses_count = user_info['statuses_count'] wb.followers_count = user_info['followers_count'] wb.profile_image_url = user_info['profile_image_url'] wb.avatar_large = user_info['avatar_large'] if debug: print item print " ", "statuses_count", user_info['statuses_count'] print " ", "followers_count", user_info['followers_count'] print " ", "profile_image_url", user_info['profile_image_url'] print " ", "avatar_large", user_info['avatar_large'] continue wb.put() print "ok"
def search_user(keywords,debug=False,force_update=False): """ 根据类别更新微博用户的常用信息 如果keywords没有会出错 应该先执行search_users查询结果 debug:调试模式只输出 不保存数据 force_update:强制更新所有微博(以为新浪对开发者有请求次数限制 尽量少做没用的请求) """ if keywords not in weibo_user.users: weibo_user.users[keywords] = [] weibo_user.put() for item in weibo_user.users[keywords]: #如果已经存在这个用户了 就不在更新数据 除非强制刷新模式 wb = Weibo.get(item) if wb and not force_update: continue #item:微博id try: result = client.users.show.get(uid=item) except Exception,e: print e continue user_info = dict(result) if not wb: wb = Weibo._install(item) wb.screen_name = user_info['screen_name'] wb.statuses_count = user_info['statuses_count'] wb.followers_count = user_info['followers_count'] wb.profile_image_url = user_info['profile_image_url'] wb.avatar_large = user_info['avatar_large'] if debug: print item print " ","statuses_count",user_info['statuses_count'] print " ","followers_count",user_info['followers_count'] print " ","profile_image_url",user_info['profile_image_url'] print " ","avatar_large",user_info['avatar_large'] continue wb.put() print "ok"
#-*- coding: utf-8 -*-