UPDATE
This commit is contained in:
parent
7aa2bb1c76
commit
72d0995e74
|
@ -0,0 +1,13 @@
|
|||
/db/__pycache__/__init__.cpython-38.pyc
|
||||
/db/__pycache__/tyc.cpython-38.pyc
|
||||
/.idea/.gitignore
|
||||
/.idea/inspectionProfiles/profiles_settings.xml
|
||||
/.idea/inspectionProfiles/Project_Default.xml
|
||||
/.idea/misc.xml
|
||||
/.idea/modules.xml
|
||||
/.idea/service_tyc.iml
|
||||
/.idea/vcs.xml
|
||||
/methods/__pycache__/__init__.cpython-38.pyc
|
||||
/methods/__pycache__/conserve_methods.cpython-38.pyc
|
||||
/methods/__pycache__/general_methods.cpython-38.pyc
|
||||
/methods/__pycache__/tianyancha_api.cpython-38.pyc
|
|
@ -0,0 +1,14 @@
|
|||
from flask import Flask
|
||||
from flask_cors import *
|
||||
|
||||
from routes import server_tyc
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
app.config['JSON_SORT_KEYS'] = False
|
||||
app.register_blueprint(server_tyc, url_prefix='/server_tyc')
|
||||
CORS(app, supports_credentials=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run()
|
|
@ -0,0 +1,25 @@
|
|||
import time
|
||||
from urllib import parse
|
||||
|
||||
import pymongo
|
||||
|
||||
from setting import DB_USER, DB_PASS, DB_HOST, DB_PORT
|
||||
|
||||
USER = parse.quote_plus(DB_USER)
|
||||
PASSWORD = parse.quote_plus(DB_PASS)
|
||||
|
||||
client = pymongo.MongoClient('mongodb://%s:%s@%s:%s/' % (USER, PASSWORD, DB_HOST, DB_PORT))
|
||||
|
||||
|
||||
def update_data(**kwargs):
|
||||
"""
|
||||
按条件更新数据
|
||||
"""
|
||||
data = kwargs['data']
|
||||
my_col = client[kwargs['db']][kwargs['col']]
|
||||
data['录入时间'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
||||
if 'new' in kwargs:
|
||||
my_col.update_one(kwargs['find'], {"$set": data}, upsert=True)
|
||||
else:
|
||||
my_col.update_one(kwargs['find'], {"$set": data})
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
/.idea
|
||||
/venv
|
||||
*.pyc
|
|
@ -0,0 +1,34 @@
|
|||
from db.tyc import update_data
|
||||
from setting import DB_JYFX, DB_SFFX, DB_TYFX, DB_GSBJ
|
||||
|
||||
|
||||
# 保存司法风险
|
||||
def conserve_judicial_risk(name, key, value):
|
||||
insert_data = dict()
|
||||
insert_data['企业名称'] = name
|
||||
insert_data[key] = value
|
||||
update_data(db=DB_SFFX, col=key, find={"企业名称": name}, data=insert_data, new=True)
|
||||
|
||||
|
||||
# 保存经营风险
|
||||
def conserve_business_risk(name, key, value):
|
||||
insert_data = dict()
|
||||
insert_data['企业名称'] = name
|
||||
insert_data[key] = value
|
||||
update_data(db=DB_JYFX, col=key, find={"企业名称": name}, data=insert_data, new=True)
|
||||
|
||||
|
||||
# 保存天眼风险
|
||||
def conserve_tianyan_risk(name, key, value):
|
||||
insert_data = dict()
|
||||
insert_data['企业名称'] = name
|
||||
insert_data[key] = value
|
||||
update_data(db=DB_TYFX, col=key, find={"企业名称": name}, data=insert_data, new=True)
|
||||
|
||||
|
||||
# 保存公司背景
|
||||
def conserve_company_background(name, key, vlaue):
|
||||
insert_data = dict()
|
||||
insert_data['企业名称'] = name
|
||||
insert_data[key] = vlaue
|
||||
update_data(db=DB_GSBJ, col=key, find={"企业名称": name}, data=insert_data, new=True)
|
|
@ -0,0 +1,19 @@
|
|||
from methods.tianyancha_api import judicial_risk, serious_violation, administrative_sanction, environmental_punishment, \
|
||||
abnormal_operation, tax_arrears_announcement, tax_violation, equity_pledge, peripheral_risk, company_baseinfo
|
||||
|
||||
|
||||
def save_full_data(name):
|
||||
"""
|
||||
保存天眼查全量数据
|
||||
"""
|
||||
judicial_risk(name)
|
||||
serious_violation(name)
|
||||
administrative_sanction(name)
|
||||
environmental_punishment(name)
|
||||
abnormal_operation(name)
|
||||
tax_arrears_announcement(name)
|
||||
tax_violation(name)
|
||||
equity_pledge(name)
|
||||
peripheral_risk(name)
|
||||
company_baseinfo(name)
|
||||
|
|
@ -0,0 +1,191 @@
|
|||
"""
|
||||
天眼查API
|
||||
"""
|
||||
import json
|
||||
import requests
|
||||
|
||||
from methods.conserve_methods import conserve_judicial_risk, conserve_business_risk, conserve_tianyan_risk, \
|
||||
conserve_company_background
|
||||
|
||||
token = "5407573b-e41e-4ab4-9f46-daa0032ad0a4"
|
||||
headers = {'Authorization': token}
|
||||
|
||||
|
||||
# 司法风险
|
||||
def judicial_risk(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/cb/judicial/2.0?keyword={}'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)['result']
|
||||
res = dict()
|
||||
res['开庭公告'] = result['ktAnnouncementList']
|
||||
res['被执行人'] = result['zhixingList']
|
||||
res['法院公告'] = result['courtAnnouncementList']
|
||||
res['立案信息'] = result['courtRegisterList']
|
||||
res['失信人'] = result['dishonestList']
|
||||
res['诉讼'] = result['lawSuitList']
|
||||
res['送达公告'] = result['sendAnnouncementList']
|
||||
for key, value in res.items():
|
||||
conserve_judicial_risk(name, key, value)
|
||||
except Exception:
|
||||
res = dict()
|
||||
res['开庭公告'] = dict()
|
||||
res['被执行人'] = dict()
|
||||
res['法院公告'] = dict()
|
||||
res['立案信息'] = dict()
|
||||
res['失信人'] = dict()
|
||||
res['诉讼'] = dict()
|
||||
res['送达公告'] = dict()
|
||||
for key, value in res.items():
|
||||
conserve_judicial_risk(name, key, value)
|
||||
|
||||
|
||||
# 经营风险-严重违法
|
||||
def serious_violation(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/mr/illegalinfo/2.0?pageSize=20&keyword={}&pageNum=1'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['result'] = result['result']['items']
|
||||
res['total'] = result['result']['total']
|
||||
conserve_business_risk(name, '严重违法', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_business_risk(name, '严重违法', res)
|
||||
|
||||
|
||||
# 经营风险-行政处罚
|
||||
def administrative_sanction(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/mr/punishmentInfo/3.0?pageSize=20&keyword={}&pageNum=1'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['result'] = result['result']['items']
|
||||
res['total'] = result['result']['total']
|
||||
conserve_business_risk(name, '行政处罚', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_business_risk(name, '行政处罚', res)
|
||||
|
||||
|
||||
# 经营风险-环保处罚
|
||||
def environmental_punishment(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/mr/environmentalPenalty/2.0?name={}&pageSize=20&pageNum=1'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['result'] = result['result']['items']
|
||||
res['total'] = result['result']['total']
|
||||
conserve_business_risk(name, '环保处罚', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_business_risk(name, '环保处罚', res)
|
||||
|
||||
|
||||
# 经营风险-经营异常
|
||||
def abnormal_operation(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword={}&pageNum=1'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['result'] = result['result']['items']
|
||||
res['total'] = result['result']['total']
|
||||
conserve_business_risk(name, '经营异常', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_business_risk(name, '经营异常', res)
|
||||
|
||||
|
||||
# 经营风险-欠税公告
|
||||
def tax_arrears_announcement(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/mr/ownTax/2.0?pageSize=20&keyword={}&pageNum=1'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['result'] = result['result']['items']
|
||||
res['total'] = result['result']['total']
|
||||
conserve_business_risk(name, '欠税公告', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_business_risk(name, '欠税公告', res)
|
||||
|
||||
|
||||
# 经营风险-税收违法
|
||||
def tax_violation(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/mr/taxContravention/2.0?pageSize=20&keyword={}&pageNum=1'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['result'] = result['result']['items']
|
||||
res['total'] = result['result']['total']
|
||||
conserve_business_risk(name, '税收违法', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_business_risk(name, '税收违法', res)
|
||||
|
||||
|
||||
# 经营风险-股权出质
|
||||
def equity_pledge(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/mr/equityInfo/2.0?pageSize=20&keyword={}&pageNum=1'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['result'] = result['result']['items']
|
||||
res['total'] = result['result']['total']
|
||||
conserve_business_risk(name, '股权出质', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_business_risk(name, '股权出质', res)
|
||||
|
||||
|
||||
# 企业天眼风险-周边风险
|
||||
def peripheral_risk(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/risk/riskInfo/2.0?keyword={}'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = dict()
|
||||
res['自身风险'] = result['result']['riskList'][0]
|
||||
res['周边风险'] = result['result']['riskList'][1]
|
||||
res['历史风险'] = result['result']['riskList'][2]
|
||||
res['预警提醒'] = result['result']['riskList'][3]
|
||||
for key, value in res.items():
|
||||
conserve_tianyan_risk(name, key, value)
|
||||
except Exception:
|
||||
res = dict()
|
||||
res['自身风险'] = dict()
|
||||
res['周边风险'] = dict()
|
||||
res['历史风险'] = dict()
|
||||
res['预警提醒'] = dict()
|
||||
for key, value in res.items():
|
||||
conserve_tianyan_risk(name, key, value)
|
||||
|
||||
|
||||
# 公司背景-企业基本信息
|
||||
def company_baseinfo(name):
|
||||
url = 'http://open.api.tianyancha.com/services/open/ic/baseinfo/normal?keyword={}'
|
||||
url = url.format(name)
|
||||
|
||||
try:
|
||||
result = json.loads(requests.get(url, headers=headers).text)
|
||||
res = result['result']
|
||||
conserve_company_background(name, '基本信息', res)
|
||||
except Exception:
|
||||
res = dict()
|
||||
conserve_company_background(name, '基本信息', res)
|
|
@ -0,0 +1,13 @@
|
|||
from flask import Blueprint, request
|
||||
|
||||
from methods.general_methods import save_full_data
|
||||
|
||||
server_tyc = Blueprint('server_tyc', __name__)
|
||||
|
||||
|
||||
# 保存天眼查全量数据
|
||||
@server_tyc.route('/upload_tyc_data', methods=['POST'])
|
||||
def upload_tyc_data():
|
||||
name = request.json['企业名称']
|
||||
save_full_data(name)
|
||||
return {"info": "保存成功"}, 200
|
|
@ -0,0 +1,14 @@
|
|||
PROJECT_NAME = 'tfse_tyc'
|
||||
PROJECT_PORT = '60006'
|
||||
|
||||
# 数据库配置(tyc)
|
||||
DB_HOST = '116.63.130.34'
|
||||
DB_USER = 'root'
|
||||
DB_PASS = 'gP@DwMSVd5Sh6EiH'
|
||||
DB_PORT = 27019
|
||||
|
||||
# 数据库参数
|
||||
DB_GSBJ = '公司背景'
|
||||
DB_SFFX = '司法风险'
|
||||
DB_JYFX = '经营风险'
|
||||
DB_TYFX = '天眼风险'
|
Loading…
Reference in New Issue