示例#1
0
def reptile_get():
    getdata = request.args
    reptile_request = Crud.get_data_by_id(ReptileRequest, getdata['id'])
    urls = []  #处理为数组,接受多页查询
    if reptile_request.begin_page and reptile_request.end_page:  #有起止页面
        urls = [
            reptile_request.url.replace("{}", str(v))
            for v in range(int(reptile_request.begin_page),
                           int(reptile_request.end_page) + 1)
        ]
    else:
        urls.append(reptile_request.url)
    content_obj = {
        'content_name': reptile_request.content_name,
        'content_info': reptile_request.content_info,
        'content_main': reptile_request.content_main,
        'content_img': reptile_request.content_img,
    }
    page_list, number = [], 0
    for url in urls:
        page_list.extend(getReptileList(url, reptile_request.dom))
    for content_url in page_list:
        number += 1
        print('-' * 40 + '开始爬第%d/%d个数据(%s)' %
              (number, len(page_list), content_url) + '-' * 40)
        #如果url已经被爬过了,跳过
        count = ReptileList.query.filter(
            ReptileList.is_del == 0,
            getattr(ReptileList, 'url') == content_url).count()
        if count > 0:
            print('-' * 40 + '该数据已经被拿下' + '-' * 40)
            continue
        content = getReptileContent(content_url, content_obj)
        #如果没有取到数据
        if 'content_name' not in content.keys(
        ) or 'content_main' not in content.keys():
            return
        #如果有图片,下载图片,替换url
        if 'content_img' in content.keys():
            if content['content_img']:
                content['content_img'] = downImage(
                    full_url(url, content['content_img']))
        content['request_id'] = getdata['id']
        content['url'] = content_url
        #匹配新增代码,因批量爬取可能会中断,采用采集一个存一个的方式
        # reptile_obj = ReptileList(
        #     request_id=getdata['id'],
        #     url=content_url,
        #     content_name=content['content_name'],
        #     content_info=content.setdefault('content_info', ''),
        #     content_main=content['content_main'],
        #     content_img=content.setdefault('content_img', ''),
        # )
        Crud.add(ReptileList, content, 'url')
        print('-' * 40 + '第%d个数据已爬取成功' % (number) + '-' * 40)
    if number > 0:
        return {"code": 1, "msg": "已成功爬取" + str(number) + "个数据!"}
    return {"code": 0, "msg": "数据不存在或已经被爬过啦!"}
示例#2
0
文件: menu.py 项目: xuannanxan/maitul
def menu_add():
    data = request.form
    form = MenuForm(data)
    if form.validate():
        result = Crud.add(Menu, data, 'name')
        if result:
            op_log("添加菜单-%s" % data["name"])
            return {"code": 1, "msg": "添加成功!"}
        return {"code": 0, "msg": "添加失败,系统错误或菜单已存在"}
    return {"code": 0, "msg": form.get_errors()}
示例#3
0
def auth_add():
    data = request.form
    form = AuthForm(data)
    if form.validate():
        result = Crud.add(Auth, data, 'name')
        if result:
            op_log("添加权限-%s" % data["name"])
            return {"code": 1, "msg": '添加成功'}
        return {"code": 0, "msg": '添加失败,系统错误或名称重复'}
    return {"code": 0, "msg": form.get_errors()}
示例#4
0
文件: ad.py 项目: xuannanxan/maitul
def ad_add():
    data = request.form
    form = AdForm(data)
    if form.validate():
        result = Crud.add(Ad,data,'title')
        if result:
            op_log("添加广告-%s" % data["title"])
            return {"code": 1, "msg": '添加成功'}
        return {"code": 0, "msg": '添加失败,系统错误或名称已存在'}    
    return {"code": 0, "msg": form.get_errors()}
示例#5
0
文件: ad.py 项目: xuannanxan/maitul
def adspace_add():
    data = request.form
    form = AdspaceForm(data)
    if form.validate():
        result = Crud.add(Adspace,data,"name")
        if result:
            op_log("添加广告位-%s" % data["name"])
            return {"code": 1, "msg": '添加成功'}
        return {"code": 0, "msg": '添加失败,系统错误或名称已存在'}    
    return {"code": 0, "msg": form.get_errors()}
示例#6
0
文件: role.py 项目: xuannanxan/maitul
def role_add():
    data = request.form
    form = RoleForm(data)
    if form.validate():
        result = Crud.add(Role,data,'name')
        if result:
            op_log("添加角色-%s" % data["name"])
            return {"code": 1, "msg": '新增成功'}
        return {"code": 0, "msg": '修改失败,系统错误或名称已存在'}
    return {"code": 0, "msg": form.get_errors()}
示例#7
0
def reptile_add():
    data = request.form
    form = ReptileForm(data)
    if form.validate():
        result = Crud.add(ReptileRequest, data, "name")
        if result:
            op_log("添加爬虫任务-%s" % data["name"])
            return {"code": 1, "msg": '添加成功'}
        return {"code": 0, "msg": '添加失败,系统错误或名称已存在'}
    return {"code": 0, "msg": form.get_errors()}
示例#8
0
def admin_add():
    data = request.form
    form = AdminForm(data)
    if form.validate():
        result = Crud.add(Admin, data, "username")
        if result:
            op_log("添加管理员-%s" % data["username"])
            return {"code": 1, "msg": '添加成功'}
        return {"code": 0, "msg": '添加失败,系统错误或管理员已存在'}
    return {"code": 0, "msg": form.get_errors()}
示例#9
0
文件: tag.py 项目: xuannanxan/maitul
def tag_add():
    data = request.form
    form = TagForm(data)
    if form.validate():
        add_data = Crud.add(Tag, data, "name")
        if add_data:
            op_log("添加标签-%s" % add_data.name)
            return {"code": 1, "msg": '添加成功'}
        return {"code": 0, "msg": '添加失败,系统错误或标签已存在'}
    return {"code": 0, "msg": form.get_errors()}
示例#10
0
def conf_add():
    data = request.form
    form = ConfForm(data)
    if form.validate():
        result = Crud.add(Conf,data,"ename")
        if result:
            op_log("添加配置项-%s" % data["ename"])
            return {"code":1, "msg": '添加成功'}
        return {"code":0, "msg": '添加失败,系统错误或调用名已存在'}
    return {"code": 0, "msg": form.get_errors()}
示例#11
0
def template_add():
    data = request.form
    form = TemplateForm(data)
    if form.validate():
        result = Crud.add(Template, data, "name")
        if result:
            op_log("添加模板-%s" % data["name"])
            return {"code": 1, "msg": '添加成功'}
        return {"code": 0, "msg": '添加失败,系统错误或分类已存在'}
    return {"code": 0, "msg": form.get_errors()}
示例#12
0
def article_add():
    data = request.form
    form = ArticleForm(data)
    if form.validate():
        # 先添加产品信息  
        article_data = Crud.add(Article,data)
        if article_data:
            # 如果有标签信息,根据产品的id和标签ID保存关联的标签数据
            if data['tags']:
                tags = data['tags'].split(',') 
                tag_data = [TagRelation(
                    tag_type = 2,
                    relation_id = article_data.id,
                    tag_id =v
                ) for v in tags]
                Crud.add_all(tag_data)
            op_log("添加文章-%s" % article_data.title)
            return {"code": 1, "msg": "添加成功"}
        return {"code": 0, "msg": '添加失败,系统错误'}
    return {"code": 0, "msg": form.get_errors()}
示例#13
0
def message():
    if request.method == 'POST':
        data = request.form
        form = MessageForm(data)
        ip = request.remote_addr
        # request 数据转为dict
        dict_data = data.to_dict()
        dict_data['ip'] = ip
        if form.validate():
            message_data = Crud.add(Message, dict_data)
            if message_data:
                session['user_email'] = message_data.email
                re_mail = MailObj()
                re_mail.recipients.append(message_data.email)
                send_email(re_mail)
                warn_mail = MailObj()
                warn_mail.subject = '您有新的询盘,请注意查收!'
                warn_mail.html_body = '<p>姓名:%s</p>' \
                                    '<p>邮箱:%s</p>' \
                                    '<p>联系方式:%s</p>' \
                                    '<p>留言内容:%s</p>' \
                                    '<p>用户来源:%s</p>'% (message_data.name, message_data.email,message_data.contact,message_data.info,message_data.ip)
                send_email(warn_mail)
                return {
                    "code":
                    1,
                    "msg":
                    "Message submitted successfully, thank you for your support, we will contact you as soon as possible!"
                }
            return {
                "code":
                0,
                "msg":
                'System error, message submitted failure, please call our phone.'
            }
        return {"code": 0, "msg": form.get_errors()}