Пример #1
0
 def initialize_info(self, user_config):
     """初始化爬虫信息"""
     self.weibo = []
     self.user = UserInfo()
     self.user_config = user_config
     self.got_count = 0
     self.weibo_id_list = []
Пример #2
0
 def bassCreateUser(self, username, userId):
     user = UserInfo.UserInfo()
     user.name = username
     user.id = userId
     user = user.__dict__
     # 打印字典
     print(user)
     # 字典转化为json
     userJson = json.dumps(user)
     userDao = UserDao.UserDao()
     userDict = userDao.baasCreateUser(userJson)
     userInfo = UserInfo.UserInfo()
     userInfo.userId, userInfo.publicKey, userInfo.privateKey, userInfo.address = userDict[
         "id"], userDict['basePublicKey'], userDict[
             'basePrivateKey'], userDict['baseAccountAddress']
     return userInfo
Пример #3
0
 def get_user_info(self):
     """获取用户信息"""
     params = {'containerid': '100505' + str(self.user_config['user_id'])}
     js = self.get_json(params)
     if js['ok']:
         info = js['data']['userInfo']
         user_info = OrderedDict()
         user_info['user_id'] = self.user_config['user_id']
         user_info['screen_name'] = info.get('screen_name', '')
         user_info['gender'] = "女" if js['data']['userInfo']['gender'] == "f" else "男"
         params = {
             'containerid':
                 '230283' + str(self.user_config['user_id']) + '_-_INFO'
         }
         zh_list = [
             u'生日', u'所在地', u'小学', u'初中', u'高中', u'大学', u'公司', u'注册时间',
             u'阳光信用'
         ]
         en_list = [
             'birthday', 'location', 'education', 'education', 'education',
             'education', 'company', 'registration_time', 'sunshine'
         ]
         for i in en_list:
             user_info[i] = ''
         js = self.get_json(params)
         if js['ok']:
             cards = js['data']['cards']
             if isinstance(cards, list) and len(cards) > 1:
                 card_list = cards[0]['card_group'] + cards[1]['card_group']
                 for card in card_list:
                     if card.get('item_name') in zh_list:
                         user_info[en_list[zh_list.index(
                             card.get('item_name'))]] = card.get(
                             'item_content', '')
         user_info['statuses_count'] = info.get('statuses_count', 0)
         user_info['followers_count'] = info.get('followers_count', 0)
         user_info['follow_count'] = info.get('follow_count', 0)
         user_info['description'] = info.get('description', '')
         user_info['profile_url'] = info.get('profile_url', '')
         user_info['profile_image_url'] = info.get('profile_image_url', '')
         user_info['avatar_hd'] = info.get('avatar_hd', '')
         user_info['urank'] = info.get('urank', 0)
         user_info['mbrank'] = info.get('mbrank', 0)
         user_info['verified'] = info.get('verified', False)
         user_info['verified_type'] = info.get('verified_type', -1)
         user_info['verified_reason'] = info.get('verified_reason', '')
         user = self.standardize_info(user_info)
         self.user = UserInfo(**dict(user))
         self.user_to_database()
         return user
Пример #4
0
async def join(users: UserI):
    userlist=list(users)
    user_id = userlist[1][1]
    user_pw = userlist[2][1]
    user_name = userlist[3][1]
    user_age = userlist[4][1]
    

    user = UserInfo()
    user.user_id = user_id
    user.user_pw = user_pw
    user.user_name = user_name
    user.user_age = user_age

    session.add(user)
    session.commit()
    return "회원가입완료!"
Пример #5
0
    def get(self):
        self.response.headers['Content-Type'] = 'text/html'

        user = users.get_current_user()
        current_folder = self.request.get('current_folder')
        folder = None
        if user:
            user_key = ndb.Key('UserInfo', user.email())
            user_info = user_key.get()
            if user_info is None:
                user_info = UserInfo(id=user.email())
                user_info.email = user.email()
                folder_info = FolderInfo(id=user.email() + "/")
                folder_info.name = "/"
                user_info.folder = folder_info.key
                folder_info.put()
                user_info.put()
                time.sleep(1)

            if len(current_folder) == 0:
                folder = user_info.folder.get()
            else:
                folder_key = ndb.Key('FolderInfo',
                                     user.email() + current_folder)
                folder = folder_key.get()

            url = users.create_logout_url(self.request.uri)
            url_string = 'logout'
        else:
            url = users.create_login_url(self.request.uri)
            url_string = 'login'

        template_values = {
            'url': url,
            'url_string': url_string,
            'user': user,
            'upload_url': blobstore.create_upload_url('/upload'),
            'message': self.request.get('message'),
            'current_folder': folder
        }

        template = JINJA_ENVIRONMENT.get_template('main.html')
        self.response.write(template.render(template_values))
        MainPage.obj = self
Пример #6
0
 def findUserInfoByAddress(self, address):
     sql = """
                    select id,name,address,publicKey,privateKey from user a left join user_info b  on a.id = b.userId  where address = %s
                """
     array = []
     param = []
     param.append(address)
     try:
         baseDao = BaseDao.BaseDao()
         result = baseDao.execteGetOneSql(sql, param)
         user = UserInfo.UserInfo()
         user.id = result[0]
         user.name = result[1]
         user.address = result[2]
         user.privateKey = result[4]
         user.publicKey = result[3]
         return user
     except Exception as e:
         print(e)
Пример #7
0
def user_info():
	"""
		Grab user's profile information into the database
		user sign up page, user must log in successfully before getting to this page
	"""

	if not is_loggedin():
		return redirect(url_for('login'))
	form=UserInfoForm()
	if request.method=='POST':
		userInfo=UserInfo(form.nickName.data, form.email.data, form.phone.data, form.city.data, 
			form.state.data, form.zipcode.data, form.education.data, form.sports.data,form.arts.data,
			form.travel.data,form.music.data,form.reading.data,form.gardening.data, form.nature.data,
			form.snowboard.data,form.food.data)
		db.session.add(userInfo) #add returned data to user table in the database 
		db.session.commit()
		return redirect(url_for('home'))

	elif request.method=='GET':
		return render_template('user_info.html',form=form)
Пример #8
0
    def getBossAccount(self, customerName):
        sql = """
                       select id,name,address,publicKey,privateKey from user a left join user_info b  on a.id = b.userId  where customerName = %s
                        and b.isBoss=0
                   """
        array = []
        param = []
        param.append(customerName)
        try:
            baseDao = BaseDao.BaseDao()
            result = baseDao.execteGetOneSql(sql, param)
            user = UserInfo.UserInfo()
            user.id = result[0]
            user.name = result[1]
            user.address = result[2]
            user.privateKey = result[4]
            user.publicKey = result[3]

            return user
        except Exception as e:
            print(e)
Пример #9
0
    def findUserInfo(self, customerName):
        sql = """
               select id,name,address,publicKey,privateKey from user a left join user_info b  on a.id = b.userId  where customerName = %s
                and b.isBoss=1
           """
        array = []
        param = []
        param.append(customerName)
        try:

            result = baseDao.executeGetAllSql(sql, param)

            for row in result:
                user = UserInfo.UserInfo()
                user.id = row[0]
                user.name = row[1]
                user.address = row[2]
                user.privateKey = row[4]
                user.publicKey = row[3]
                array.append(user)
            return array
        except Exception as e:
            print(e)
Пример #10
0
def settleTest(address,amount):
    userController = NewUserController.NewUserController()
    userInfo = UserInfo.UserInfo()

    list=[]
    settleObject =NewSettleObject.NewSettleObject()
    settleObject.amount = amount
    settleObject.ownerAccount = address

    userInfo = userController.findUserInfoByAddress(settleObject.ownerAccount)
    list.append(userInfo)
    settleObject.userPrivateKey = userInfo.privateKey
    userAssetArray = userController.findAssetId(userInfo)
    userAssetStr = ""
    first= True
    for each in userAssetArray:
        if first:
            userAssetStr = userAssetStr+each.assetAddress
            first=False
        else:
            userAssetStr = userAssetStr+"," + each.assetAddress
    settleObject.srcAsset = userAssetStr
    userController.settle(settleObject)
Пример #11
0
 def __init__(self, user_id_list, config=None):
     """Weibo类初始化"""
     if not config:
         config = weibo_config
     config['user_id_list'] = user_id_list
     self.validate_config(config)
     self.filter = config[
         'filter']  # 取值范围为0、1,程序默认值为0,代表要爬取用户的全部微博,1代表只爬取用户的原创微博
     since_date = config['since_date']
     if isinstance(since_date, int):
         since_date = date.today() - timedelta(since_date)
     since_date = str(since_date)
     self.since_date = since_date  # 起始时间,即爬取发布日期从该值到现在的微博,形式为yyyy-mm-dd
     self.start_page = config.get('start_page',
                                  1)  # 开始爬的页,如果中途被限制而结束可以用此定义开始页码
     self.write_mode = config[
         'write_mode']  # 结果信息保存类型,为list形式,可包含csv、mongo和mysql三种类型
     self.original_pic_download = config[
         'original_pic_download']  # 取值范围为0、1, 0代表不下载原创微博图片,1代表下载
     self.retweet_pic_download = config[
         'retweet_pic_download']  # 取值范围为0、1, 0代表不下载转发微博图片,1代表下载
     self.original_video_download = config[
         'original_video_download']  # 取值范围为0、1, 0代表不下载原创微博视频,1代表下载
     self.retweet_video_download = config[
         'retweet_video_download']  # 取值范围为0、1, 0代表不下载转发微博视频,1代表下载
     self.result_dir_name = config.get(
         'result_dir_name', 0)  # 结果目录名,取值为0或1,决定结果文件存储在用户昵称文件夹里还是用户id文件夹里
     cookie = config.get('cookie')  # 微博cookie,可填可不填
     user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
     self.headers = {'User_Agent': user_agent, 'Cookie': cookie}
     self.mysql_config = config.get('mysql_config')  # MySQL数据库连接配置,可以不填
     query_list = config.get('query_list') or []
     if isinstance(query_list, str):
         query_list = query_list.split(',')
     self.query_list = query_list
     if not isinstance(user_id_list, list):
         if not os.path.isabs(user_id_list):
             user_id_list = os.path.split(
                 os.path.realpath(__file__))[0] + os.sep + user_id_list
         self.user_config_file_path = user_id_list  # 用户配置文件路径
         user_config_list = self.get_user_config_list(user_id_list)
     else:
         self.user_config_file_path = ''
         user_config_list = [{
             'user_id': user_id,
             'since_date': self.since_date,
             'query_list': query_list
         } for user_id in user_id_list]
     self.user_config_list = user_config_list  # 要爬取的微博用户的user_config列表
     self.user_config = {}  # 用户配置,包含用户id和since_date
     self.start_date = ''  # 获取用户第一条微博时的日期
     self.query = ''
     self.user: UserInfo = UserInfo()  # 存储目标微博用户信息
     self.got_count = 0  # 存储爬取到的微博数
     self.weibo = []  # 存储爬取到的所有微博信息
     self.weibo_id_list = []  # 存储爬取到的所有微博id
     self.proxies = requests.get(
         "http://api.hailiangip.com:8422/api/getIp?type=1&num=1&pid=&unbindTime=600&cid=&orderId=O21042810412537647150&time=1619577728&sign=d79086f5b8ba9dbe1a17e5b710b77032&noDuplicate=1&dataType=0&lineSeparator=0&singleIp="
     ).json()['data'][0]
     logger.info({
         "http": f"http://{self.proxies['ip']}:{self.proxies['port']}",
         "https": f"https://{self.proxies['ip']}:{self.proxies['port']}",
     })