diff --git a/db.py b/db.py index 2987323..3bd017d 100644 --- a/db.py +++ b/db.py @@ -23,3 +23,32 @@ def conserve_data(db, name, key, value): # 数据库操作 my_col = client[db][key] my_col.update_one({"企业名称": name}, {"$set": insert_data}, upsert=True) + + +def conserve_data_by_hold(db, h_id, h_name, key, value): + """ + 保存天眼查api接口数据 + 传入数据库名称,企业名称,集合名称,需要保存的数据 + """ + insert_data = dict() + insert_data['人员ID'] = h_id + insert_data['姓名'] = h_name + insert_data['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + insert_data[key] = value + # 数据库操作 + my_col = client[db][key] + my_col.update_one({"人员ID": h_id}, {"$set": insert_data}, upsert=True) + + +def find_db_data(**kwargs): + """ + 查询数据库记录 + Parameters: + kwargs: 查询条件 + Returns: + data: tfse数据 + """ + collection = client[kwargs['db']][kwargs['col']] + result = collection.find(kwargs['query'], {'_id': False}) + data = list(result) + return data diff --git a/tyc.py b/tyc.py index d4e0e0a..e3d506a 100644 --- a/tyc.py +++ b/tyc.py @@ -5,7 +5,7 @@ import json import requests from common import judege_api_code, general_request -from db import conserve_data +from db import conserve_data, find_db_data, conserve_data_by_hold from setting import DB_SFFX, DB_JYFX, DB_TYFX, DB_GSBJ, DB_JYZK, DB_ZSCQ, DB_GSFZ token = "32737167-cb63-4ce9-9397-d66169488f51" @@ -268,6 +268,51 @@ def financing_history(name): return res +# 人员控股企业 +def holding_enterprise(h_id, h_name): + url = 'http://open.api.tianyancha.com/services/open/human/companyholding/2.0?hid={}&pageSize=20&pageNum=1&' + url = url.format(h_id) + # 根据传入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() + insert['result'] = res['result']['items'] + insert['total'] = res['result']['total'] + conserve_data_by_hold(DB_GSBJ, h_id, h_name, '人员控股企业', insert) + return '保存成功' + elif status == '无数据': + insert = dict() + conserve_data_by_hold(DB_GSBJ, h_id, h_name, '人员控股企业', insert) + return '保存成功' + else: + return status + + +# 保存股东数据 +def shareholder_information(name): + # 判断企业大股东类型 + result = find_db_data(db='公司背景', col='企业股东', query={'企业名称': name}) + if len(result) > 0: + if result[0]['企业股东']['result'][0]['type'] == 1: + # 1-公司 + company_name = result[0]['企业股东']['result'][0]['name'] + # 股东为公司,需要再次调用基本信息/企业股东天眼查接口 + res = company_baseinfo(company_name) + if res == '保存成功': + res = corporate_shareholders(company_name) + else: + # 2-自然人 + h_id = result[0]['企业股东']['result'][0]['id'] + h_name = result[0]['企业股东']['result'][0]['name'] + res = holding_enterprise(h_id, h_name) + + return res + + # 保存全量数据 def save_full_data(name): """ @@ -309,6 +354,11 @@ def save_full_data(name): res = principal_officer(name) if res == '保存成功': res = change_record(name) - + if res == '保存成功': + res = shareholder_information(name) return res + +if __name__ == '__main__': + r = shareholder_information('四川麦克福瑞制药有限公司') + print(r) \ No newline at end of file