import re class CheckData: """检查数据文本内容""" __bidding_title_set = {'招标', '流标', '评标', '询价', '中标候选人', '抽签', '谈判', '中选', '意见征询', '更正公告', '废标', '补遗', '议价', '邀请', '资格预审', '竞标', '变更', '遴选', '磋商', '项目', '评审', '询比', '开标', '澄清', '比选', '中止', '采购', '竟价', '招投标', '拟建', '成交', '中标', '竞争性谈判', '工程', '验收公告', '更正', '单一来源', '变更公告', '合同', '违规', '评判', '监理', '竞价', '答疑', '终止', '系统'} __bidding_channel_set = {"通知公告", "公告公示", "公示公告"} __plan_to_build_title_set = {'项目', '工程', '验收', '评价', '设计', '调查', '审核', '审批', '批复', '批后', '批前', '核准', '备案', '立项', '规划设计', '环评', } __plan_to_build_channel_set = {"通知", "部门文件", "公示", "办件" ,"公司", "新闻", "最新资讯"} __ignore_site = ['辽宁省投资项目在线审批监管平台', '河北省投资项目在线审批管理平台', '广西投资项目在线审批监管平台', '安徽省投资项目在线审批监管平台', '宁夏回族自治区投资项目在线审批办事大厅', '广州市规划和自然资源局', '湖北政务服务网', '贵州省投资项目在线审批监管平台', '海南省投资项目在线审批监管平台', '吉林省投资项目在线审批监管平台', '江苏省投资项目在线审批监管平台新网址'] @classmethod def title(cls, name: str, group=None): check_texts = cls.__bidding_title_set if group and group.lower() in ["njpc", "plan_to_build"]: check_texts = cls.__plan_to_build_title_set for text in check_texts: valid_text = re.search(text, name) if valid_text is not None: break else: return 10106, '标题未检索到采集关键词' return 200, 'ok' @classmethod def channel(cls, name: str, site: str, group=None): check_texts = cls.__bidding_channel_set ignore_site = cls.__ignore_site if group and group.lower() in ["njpc", "plan_to_build"]: check_texts = cls.__plan_to_build_channel_set if site in ignore_site: return False for text in check_texts: valid_text = re.search(text, name) if valid_text is not None: break else: return False return True