Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
    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