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": "数据不存在或已经被爬过啦!"}
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()}
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()}
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()}
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()}
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()}
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()}
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()}
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()}
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()}
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()}
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()}
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()}