Beispiel #1
0
def test_exist_key():
	db = WeiboDB();
	# 构造知识词条字典
	abr_list = db.select("SELECT abrid, kl FROM `abbreviation`");
	for abr in abr_list:
		GV.dict_klg[abr[1].lower()] = abr[0];

	weibo_list = db.select("SELECT mc FROM weibomsg");
	#weibomsg = 'fusion io的iops已经过百万了,在wikipedia排名第一 //@TRS肖诗斌: 昨天测试了华为二代SSD,4K随机读,IOPS超过13W,吞吐量超过800M,已经大大超过fusionio卡, 还有性能更优越的华为三代SSD年底就要发布。这些证明只要专注和努力,国人同样可以作出好东西。其实SSD最好的是OCZ,读写达到1.4G/s, 华	HelloDBA出品:《Fusionio性能测试与瓶颈分析》,http://t.cn/a9Ts2j,如果你懒得看测试数据,直接看结论吧。';
	for weibomsg in weibo_list:
		key_list = utility.exist_key(weibomsg[0]);
		if( len(key_list) > 0 ):
			print weibomsg[0];
			for id in key_list:
				for key in GV.dict_klg.keys():
					if(id == GV.dict_klg[key]):
						print key;
			raw_input();
Beispiel #2
0
def init():
	# 配置日志
	# '[%(asctime)s]-%(levelname)s : %(message)s'
	logging.basicConfig(filename='weibo.log',filemode='a',format='[%(asctime)s] - %(module)s.%(funcName)s.%(lineno)d - %(levelname)s - %(message)s',level=logging.DEBUG)

	# 进行模拟登录
	filename = './config/account'#保存微博账号的用户名和密码,第一行为用户名,第二行为密码
	WBLogin = weiboLogin.weiboLogin()
	if WBLogin.login(filename)==1:
		print 'Login success!'
	else:
		print 'Login error!'
		exit()
	
	db = WeiboDB();
	# 构造知识词条字典
	abr_list = db.select("SELECT abrid, kl FROM `abbreviation`");
	for abr in abr_list:
		GV.dict_klg[abr[1]] = abr[0];

	#for abr in dict_klg.keys():
	#	print abr + ' ' + str(dict_klg[abr]);

	# 生成任务
	dict_user = {};
	user_list = db.select("SELECT uid, fui FROM `userlist`");
	for item in user_list:
		dict_user[item[0]] = 1;
		uid_list = item[1].strip("'").split("','");
		for uid in uid_list:
			dict_user[uid] = 1;
	for uid in dict_user.keys():
		GV.task_list.put(uid);
	#task_list.put('715545693');
	#task_list.put('1069205631');
	#task_list.put('1649173367');

	# 开始执行任务
	controller();
Beispiel #3
0
 def __init__(self):
     self.wbdb = WeiboDB()
Beispiel #4
0
class WeiboMsg:
    def __init__(self):
        self.wbdb = WeiboDB()

    # 获取用户信息前的初始化
    def init_user(self, uid=None):
        self.weibomsg = {
            #'uid':'',	#用户的id
            'un': '',  #用户用户名
            'iu': '',  #用户头像URL
            'mid': '',  #消息id
            'mc': '',  #消息内容
            'nc': '',  #消息中@的用户
            'run': '',  #转发的消息的用户名
            'rmc': '',  #转发的消息的内容
            'pu': '',  #消息中的图片
            'rrc': '',  #转发的消息的转发次数
            'rcc': '',  #转发的消息的评论次数
            'rpage': '',  #转发的消息的微博页面
            'rpt': '',  #转发的消息的发布时间
            'rc': '0',  #消息的转发次数
            'cc': '0',  #消息的评论次数
            'srn': '',  #消息来源
            'page': '',  #消息的微博页面
            'pt': ''  #消息的发布时间
        }
        self.flag = 0  # 标记是否第一条记录,因为csv文件要在第一条记录前写标签
        self.flag_un = 0  # 标记是否已经获得用户名
        self.uid = uid

    # 处理一个分页的微博数据,需要继续处理返回True,停止处理返回False
    def get_content(self, content):
        self.content = content
        #self.weibomsg['uid'] = str(self.uid)	#后加的用户id
        self.pos = 0
        if self.flag_un == 0:
            self.get_weiboun()
            self.get_weiboiu()
            self.flag_un = 1
        while self.pos >= 0:
            # 每次应该初始化一下
            self.init_weibo()
            try:
                self.get_weibomid()
            except Exception, e:
                logging.exception('%s get_weibomid: ' + str(e), self.uid)
                continue
            if (self.wbdb.is_stop(self.weibomsg['mid'])):
                return False
            if self.pos == -1:
                break
            try:
                self.get_weibomc()
            except Exception, e:
                logging.exception('%s get_weibomc: ' + str(e), self.uid)
                continue
            try:
                self.get_retweet_info()
            except Exception, e:
                logging.exception('%s get_retweet_info: ' + str(e), self.uid)
                continue