import json import time import requests from DBHelper.MongoHelperInstance import DB_TYC tm_class = [ "化学原料", "颜料油漆", "⽇化⽤品", "燃料油脂", "医药", "⾦属材料", "机械设备", "⼿⼯器械", "科学仪器", "医疗器械", "灯具空调", "运输⼯具", "军⽕烟⽕", "珠宝钟表", "乐器", "办公⽤品", "橡胶制品", "⽪⾰⽪具", "建筑材料", "家具", "厨房洁具", "绳⽹袋篷", "纱线丝", "布料床单", "服装鞋帽", "钮扣拉链", "地毯席垫", "健身器材", "⻝品", "⽅便⻝品", "饲料种籽", "啤酒饮料", "酒", "烟草烟具", "⼴告销售", "⾦融物管", "建筑修理", "通讯服务", "运输贮藏", "材料加⼯", "教育娱乐", "⽹站服务", "餐饮住宿", "医疗园艺", "社会服务" ] def judege_api_code(code): """ 判断状态码 Parameters: code: 传入状态码,返回状态码对应状态说明 Returns: 状态码说明信息 """ if code == 0: return '请求成功' elif code == 300000: return '无数据' elif code == 300001: return '请求失败' elif code == 300002: return '账号失效' elif code == 300003: return '账号过期' elif code == 300004: return '访问频率过快' elif code == 300005: return '无权限访问此api' elif code == 300006: return '余额不足' elif code == 300007: return '剩余次数不足' elif code == 300008: return '缺少必要参数' elif code == 300009: return '账号信息有误' elif code == 300010: return 'URL不存在' elif code == 300011: return '此IP无权限访问此api' elif code == 300012: return '报告生成中' def business_request(url, company, db, col): """ 基本信息接口调用 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) # status为请求成功则保存result数据 if status == '请求成功': # 保存首次数据,判断页码 insert_dict = dict() insert_dict['企业名称'] = company insert_dict['基本信息'] = res['result'] insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) DB_TYC.upsert_single_data( db, col, {"企业名称": company}, insert_dict ) return '保存成功' elif status == '无数据': insert_dict = dict() insert_dict['企业名称'] = company insert_dict['基本信息'] = dict() insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) DB_TYC.upsert_single_data( db, col, {"企业名称": company}, insert_dict ) return '保存成功' else: return status def frist_request(url, company, db, col): """ 翻页接口首次调用 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) # status为请求成功则保存result数据 if status == '请求成功': # 保存首次数据,判断页码 insert_dict = dict() insert_dict['企业名称'] = company insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) insert_dict[col] = dict() insert_dict[col]['result'] = res['result']['items'] insert_dict[col]['total'] = res['result']['total'] DB_TYC.upsert_single_data( db, col, {"企业名称": company}, insert_dict ) if int(res['result']['total']) > 20: return int(res['result']['total']) else: return '保存成功' elif status == '无数据': insert_dict = dict() insert_dict['企业名称'] = company insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) insert_dict[col] = dict() insert_dict[col]['result'] = list() insert_dict[col]['total'] = 0 DB_TYC.upsert_single_data( db, col, {"企业名称": company}, insert_dict ) return '保存成功' else: return status def page_request(url, company, db, col): """ 翻页接口翻页调用 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) # status为请求成功则保存result数据 if status == '请求成功': update_data = res['result']['items'] update_str = "{}.result".format(col) for item in update_data: DB_TYC.add_single_data_in_array( db, col, {'企业名称': company}, {update_str: item} ) return '保存成功' else: return status def special_frist_request(url, company, db, col, types): """ 翻页接口首次调用 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 types: 类型 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) # 判断类型 if col == '商标信息': res_type = tm_class[types-1] else: if types == 1: res_type = '发明类型' elif types == 2: res_type = '实用新型' else: res_type = '外观设计' # status为请求成功则保存result数据 if status == '请求成功': # 保存首次数据,判断页码 insert_dict = dict() insert_dict['企业名称'] = company insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) insert_dict['类型'] = res_type insert_dict[col] = dict() insert_dict[col]['result'] = res['result']['items'] insert_dict[col]['total'] = res['result']['total'] DB_TYC.upsert_single_data( db, col, {"企业名称": company, "类型": res_type}, insert_dict ) if int(res['result']['total']) > 20: return int(res['result']['total']) else: return '保存成功' elif status == '无数据': insert_dict = dict() insert_dict['企业名称'] = company insert_dict['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) insert_dict['类型'] = res_type insert_dict[col] = dict() insert_dict[col]['result'] = list() insert_dict[col]['total'] = 0 DB_TYC.upsert_single_data( db, col, {"企业名称": company, "类型": res_type}, insert_dict ) return '保存成功' else: return status def special_page_request(url, company, db, col, types): """ 翻页接口翻页调用 Parameters: url: 传入请求链接,请求后判断状态码, company: 企业名称 db: 数据库名称 col: 集合名称 types: 类型 Returns: '保存成功' """ headers = {'Authorization': "5407573b-e41e-4ab4-9f46-daa0032ad0a4"} # 根据传入url进行请求 res = json.loads(requests.get(url, headers=headers).text) # 判断请求返回结果中的error_code code = res['error_code'] status = judege_api_code(code) if col == '商标信息': res_type = tm_class[types-1] else: if types == 1: res_type = '发明类型' elif types == 2: res_type = '实用新型' else: res_type = '外观设计' # status为请求成功则保存result数据 if status == '请求成功': update_data = res['result']['items'] update_str = "{}.result".format(col) if col == '商标信息': p_type = types else: p_type = types for item in update_data: DB_TYC.add_single_data_in_array( db, col, {'企业名称': company, '类型': res_type}, {update_str: item} ) return '保存成功' else: return status