339 lines
9.7 KiB
Python
339 lines
9.7 KiB
Python
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 |