Exemple #1
0
def accountcreate_create(request):
    try:
        person_show=name = request.session["Uid"]
    except:
        return render_to_response( "login.html",{'nameerror':'非法'})
    account=request.GET["account"]
    kindname=request.GET["kindname"]
    sum1=string.atof(request.GET["sum1"])
    proid=request.GET["proid"]
    firstm=string.atof(request.GET["firstm"])
    accid = request.GET["accid"]
    
    d1=Project.objects.get(pid = proid)
    str1=kindname
    str2=account
    s1 = str1.split(',')
    s2 = str2.split(',')
    
    if d1.iscreate == False:
        for i  in range(0,len(s1)-1):
            c1=s1[i]
            c2=string.atof(s2[i])
            b=Prokindaccount( proid = d1,payname = c1,money_sum = (c2 * 10000),money_cost = 0,buff = 0,)
            b.save()
        d1.iscreate=True
        d1.save()
        a=Account(project_id=d1,money_sum = (sum1 * 10000),money_act = (firstm * 10000),money_cost = 0,account_id = accid,)
        a.save()
        e=Accountadd_record(project_id = d1,time = datetime.datetime.now(),money_add = (firstm * 10000),)
        e.save()

    else:
        Prokindaccount.objects.filter(proid = proid).delete()
        for i  in range(0,len(s1)-1):
            c1=s1[i]
            c2=string.atof(s2[i])
            b=Prokindaccount( proid = d1,payname = c1,money_sum = (c2*10000),money_cost = 0,buff = 0,)
            b.save()
        Accountadd_record.objects.get(project_id = proid).delete()
        e=Accountadd_record(project_id = d1,time = datetime.datetime.now(),money_add = (firstm * 10000),)
        e.save()
        a=Account.objects.get(project_id = proid)
        a.money_sum= (sum1 * 10000)
        a.money_act = (firstm * 10000)
        a.account_id = accid
        a.save()
    alldata=[]
    onedata = [0,0]
    onedata[0] = "1"
    onedata[1] = '2'
    alldata.append(onedata)
    data = simplejson.dumps(alldata)
    return HttpResponse(data, 'application/javascript')
Exemple #2
0
 def run(self):
     count = 0
     while True:
         # count += 1
         # log.info('第{}次'.format(count))
         # ADD_COLLECTION 补采账号  get_account 日常采集; 使用account_list 兼容单个账号和账号列表
         account_list = ADD_COLLECTION if ADD_COLLECTION else self.get_account(
         )
         log.info('一共获取{}账号'.format(len(account_list)))
         # if account_list is None:
         #     log.info('调度队列为空,休眠5秒')
         #     time.sleep(5)
         for account_name in account_list:
             if not account_name:
                 log.error('没有账号名字')
                 continue
             count += 1
             log.info('第{}次'.format(count))
             # if count < 752:
             #     continue
             try:
                 self.search_name = account_name
                 html_account = self.account_homepage()
                 if html_account:
                     html = html_account
                 else:
                     log.info('{}|找到不到微信号'.format(account_name))
                     continue
                 urls_article = self.urls_article(html)
                 # 确定account信息
                 account = Account()
                 account.name = self.name
                 account.account = account_name
                 account.tags = self.get_tags()
                 account.get_account_id()
                 if not account.account_id:
                     log.info('没有account_id'.format(self.name))
                     # todo 广州市委没有account_id
                     account.account_id = ''
                     continue
                 # 判重
                 ids = self.dedup(account_name) if JUDEG else ''
                 entity = None
                 backpack_list = []
                 for page_count, url in enumerate(urls_article):
                     if page_count > 10:
                         break
                     article = Article()
                     try:
                         article.create(url, account)
                     except RuntimeError as run_error:
                         log.info('找不到浏览器 {}'.format(run_error))
                     log.info('第{}条 文章标题: {}'.format(
                         page_count, article.title))
                     log.info("当前文章url: {}".format(url))
                     entity = JsonEntity(article, account)
                     log.info('当前文章ID: {}'.format(entity.id))
                     # if entity.id in ids and JUDEG is True:
                     #     log.info('当前文章已存在,跳过0')
                     #     # continue
                     backpack = Backpack()
                     backpack.create(entity)
                     backpack_list.append(backpack.create_backpack())
                 log.info("开始发包")
                 if entity and backpack_list:
                     entity.uploads(backpack_list)
                     log.info("发包完成")
                     time.sleep(5)
             except Exception as e:
                 log.exception("解析公众号错误 {}".format(e))
                 if 'chrome not reachable' in str(e):
                     raise RuntimeError('chrome not reachable')
                 continue
Exemple #3
0
    def run(self):
        self.set_key_uin()
        while True:
            _biz_list = self.biz_list()
            if _biz_list:
                entity = None
                for biz in _biz_list:
                    try:
                        self._biz = biz
                        self.create_url()
                        print('添加成功')
                        # self.url = 'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA4OTEwNDUwMA==&uin=MTE1NjkxODg2MQ==&key=2e15abc1cc63c6472b3f9e24b445b1c19bb7dcee55cf4eb76c5363872c0f2f760899356828e84a3aeeb272cb0565257c52ac612c186648dbb4226484e2f04530a140a103860689fe7656df0d53f08ab5'
                        resp = requests.get(self.url, headers=self.headers)
                        # 响应结果为空即key失效
                        if len(resp.text) == 0:
                            log('key失效,获取新的key', self.url)
                            self.set_key_uin()
                            resp = requests.get(self.url, headers=self.headers)
                        else:
                            log('key有效,当前链接', self.url)
                        urls = self.urls_article(resp)

                        # 构建account
                        article = Article()
                        article.create(urls[0])
                        log("文章标题 {}".format(article.title))
                        # article.title = article.title.replace('【', '')
                        # article.title = article.title.replace('】', '')
                        # article.title = article.title.replace('!', '')

                        log(article.title)
                        account = Account()
                        account.name = article.author
                        # account.name = '中央纪委国家监委网站'
                        account.account = article.account
                        # account.account = 'gh_a78ef1e3d11e'
                        account.get_account_id()
                        account.account_id = 126774166
                        if not account.account:
                            log("错误,找不到account")

                        backpack_list = []
                        article_count = 0
                        for article_count, url in enumerate(urls):
                            log('文章链接', url)
                            article = Article()
                            article.create(url)
                            article.title = article.title.replace('.', '')
                            if '!' in article.title:
                                article.title = article.title.replace('!', '')
                            log("文章标题 {}".format(article.title))
                            entity = JsonEntity(article, account)
                            backpack = Backpack()

                            # 文章为分享,正则匹配不到时间,会异常
                            try:
                                backpack.create(entity)
                            except Exception as e:
                                log('share error', e)
                                continue
                            backpack_list.append(backpack.create_backpack())

                            # 上传数据库
                            sql = '''
                            INSERT INTO
                                account_http(article_url, addon, account, account_id, author, id, title)
                            VALUES
                                (%s, %s, %s, %s, %s, %s, %s)
                                    '''
                            _tuple = (entity.url, datetime.datetime.now(),
                                      entity.account, entity.account_id,
                                      entity.author, entity.id, entity.title)
                            uploads_mysql(config_mysql, sql, _tuple)
                            # if article_count == 4:
                            #     break
                        log('采集账号:{} 所有文章完毕,共{}条文章'.format(
                            self.name, article_count + 1))

                        log("发包")
                        if entity:
                            entity.uploads(backpack_list)
                            log("uploads successful")
                        print("end")
                        # 迭代一个账号
                        break
                    except Exception as e:
                        log('account error', e)
                        continue