This commit is contained in:
彭森 2021-12-01 10:31:39 +08:00
parent 7aa2bb1c76
commit 72d0995e74
11 changed files with 326 additions and 0 deletions

13
.gitignore vendored Normal file
View File

@ -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

14
app.py Normal file
View File

@ -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
db/__init__.py Normal file
View File

25
db/tyc.py Normal file
View File

@ -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})

3
gitignore.txt Normal file
View File

@ -0,0 +1,3 @@
/.idea
/venv
*.pyc

0
methods/__init__.py Normal file
View File

View File

@ -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)

View File

@ -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)

191
methods/tianyancha_api.py Normal file
View File

@ -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)

13
routes.py Normal file
View File

@ -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

14
setting.py Normal file
View File

@ -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 = '天眼风险'