def init_user_info(self): self.init_file_name() self.mood_host = self.http_host + '/' + self.username + '/mood/' # 在爬取好友动态时username会变为好友的QQ号,所以此处需要备份 self.raw_username = deepcopy(self.username) self.raw_nickname = deepcopy(self.nickname) self.user_info = UserInfo(self.username).load() if self.user_info is None: self.user_info = UserInfo(self.username) self.user_info.QQ = self.username self.user_info.nickname = self.nickname
def userinfo(QQ, name, password): pool = get_pool() conn = redis.Redis(connection_pool=pool) if check_password(conn, QQ, password): user = UserInfo() user.load(QQ) result = dict(finish=1, user=user.to_dict()) return json.dumps(result, ensure_ascii=False) else: result = dict(finish=0) return json.dumps(result, ensure_ascii=False)
def userinfo(QQ, name, password): pool_flag = session.get(POOL_FLAG) conn = get_redis_conn(pool_flag) if check_password(conn, QQ, password): user = UserInfo(QQ) user.load() result = dict(finish=1, user=user.to_dict()) return json.dumps(result, ensure_ascii=False) else: result = dict(finish=0) return json.dumps(result, ensure_ascii=False)
def userinfo(QQ, name, password): pool_flag = session.get(POOL_FLAG) # 当前后端域名:端口不一致时,cookie无法跨站传输,导致session为空,故需要再判断一次 if not pool_flag: host = judge_pool() conn = get_redis_conn(host) else: conn = get_redis_conn(pool_flag) if check_password(conn, QQ, password): user = UserInfo(QQ) result = user.load_from_redis(QQ) if result != None: result = dict(finish=1, user=user.to_dict()) return json.dumps(result, ensure_ascii=False) else: result = dict(finish=0) return json.dumps(result, ensure_ascii=False) else: result = dict(finish=0) return json.dumps(result, ensure_ascii=False)
def __init__(self, use_redis=False, debug=False, mood_begin=0, mood_num=-1, stop_time='-1', download_small_image=False, download_big_image=False, download_mood_detail=True, download_like_detail=True, download_like_names=True, recover=False, cookie_text=None, from_web=False, username='', nickname='', no_delete=True, pool_flag='127.0.0.1'): # 初始化下载项 self.mood_begin = mood_begin self.mood_num = mood_num self.recover = recover self.download_small_image = download_small_image self.download_big_image = download_big_image self.download_mood_detail = download_mood_detail self.download_like_detail = download_like_detail self.download_like_names = download_like_names self.thread_num = 5 self.thread_list = [] self.no_delete = no_delete if stop_time != '-1': self.stop_time = util.get_mktime(stop_time) else: self.stop_time = -1 self.begin_time = datetime.datetime.now() self.host = 'https://user.qzone.qq.com' self.h5_host = 'h5.qzone.qq.com' self.http_host = 'http://user.qzone.qq.com' self.use_redis = use_redis self.debug = debug self.cookie_text = cookie_text self.pool_flag = pool_flag if from_web: self.username = username self.nickname = nickname else: self.username, self.password, self.nickname = self.get_username_password( ) self.mood_host = self.http_host + '/' + self.username + '/mood/' # 在爬取好友动态时username会变为好友的QQ号,所以此处需要备份 self.raw_username = deepcopy(self.username) self.raw_nickname = deepcopy(self.nickname) self.headers = { 'host': 'user.qzone.qq.com', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.8', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:66.0) Gecko/20100101 Firefox/66.0', 'connection': 'keep-alive' } self.h5_headers = deepcopy(self.headers) self.h5_headers['host'] = self.h5_host if (use_redis): self.re = self.connect_redis() self.user_info = UserInfo(self.username).load() if self.user_info is None: self.user_info = UserInfo(self.username) self.user_info.QQ = self.username self.user_info.nickname = self.nickname self.image_thread_pool = ImageThreadPool(20) self.image_thread_pool2 = ThreadPoolExecutor(max_workers=20) self.init_file_name()
def __init__(self, use_redis=False, debug=False, mood_begin=0, mood_num=-1, stop_time='-1', download_small_image=False, download_big_image=False, download_mood_detail=True, download_like_detail=True, download_like_names=True, recover=False, cookie_text=None, from_web=False, username='', nickname='', no_delete=True, pool_flag='127.0.0.1'): # 初始化下载项 self.mood_begin = mood_begin self.mood_num = mood_num self.recover = recover self.download_small_image = download_small_image self.download_big_image = download_big_image self.download_mood_detail = download_mood_detail self.download_like_detail = download_like_detail self.download_like_names = download_like_names self.thread_num = 5 self.thread_list = [] self.no_delete = no_delete if stop_time != '-1': self.stop_time = util.get_mktime(stop_time) else: self.stop_time = -1 self.begin_time = datetime.datetime.now() self.host = 'https://user.qzone.qq.com' self.h5_host = 'h5.qzone.qq.com' self.http_host = 'http://user.qzone.qq.com' self.use_redis = use_redis self.debug = debug self.cookie_text = cookie_text self.pool_flag = pool_flag if from_web: self.username = username self.file_name_head = username self.nickname = nickname else: self.username, self.password, self.file_name_head, self.nick_name = self.get_username_password() self.mood_host = self.http_host + '/' + self.username + '/mood/' # 在爬取好友动态时username会变为好友的QQ号,所以此处需要备份 self.raw_username = deepcopy(self.username) self.headers = { 'host': 'user.qzone.qq.com', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.8', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:66.0) Gecko/20100101 Firefox/66.0', 'connection': 'keep-alive' } self.h5_headers = deepcopy(self.headers) self.h5_headers['host'] = self.h5_host self.USER_BASE_DIR = BASE_DIR + self.username + '/' logging_dir = self.USER_BASE_DIR + 'log/' util.check_dir_exist(logging_dir) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename=logging_dir + self.username + '.log', filemode='w+') if (use_redis): self.re = self.connect_redis() self.user_info = UserInfo(self.username).load() if self.user_info is None: self.user_info = UserInfo(self.username) self.user_info.QQ = self.username self.user_info.nickname = self.nickname