api-datamanager/Modules/TycApi/TycImpl.py

490 lines
24 KiB
Python
Raw Normal View History

2022-08-18 17:09:23 +08:00
import math
2022-08-25 17:16:59 +08:00
from Modules.TycApi.TycUtils import frist_request, page_request, business_request, special_frist_request, \
special_page_request
2022-08-18 17:09:23 +08:00
# 数据库参数
DB_GSBJ = '公司背景'
DB_SFFX = '司法风险'
DB_JYFX = '经营风险'
DB_TYFX = '天眼风险'
DB_JYZK = '经营状况'
DB_ZSCQ = '知识产权'
DB_GSFZ = '公司发展'
class TycDataImpl(object):
"""天眼查接口相关"""
# 工商信息
@staticmethod
def basic_information(**kwargs):
name = kwargs['name']
url = 'http://open.api.tianyancha.com/services/open/ic/baseinfo/normal?keyword={name}'
url = url.format(name=name)
res = business_request(url, name, DB_GSBJ, '基本信息')
return res
# 高管信息
@staticmethod
def executive_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/staff/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
# 如果只有1页返回保存成功如需翻页返回总条数用于计算页码
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_GSBJ, '主要人员')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/staff/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '主要人员')
return res
# 股东信息
@staticmethod
def shareholders_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/holder/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_GSBJ, '企业股东')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/holder/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '企业股东')
return res
# 对外投资
@staticmethod
def outbound_investment(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/inverst/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_GSBJ, '对外投资')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/inverst/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '对外投资')
return res
# 分支机构
@staticmethod
def branch_offices(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/branch/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_GSBJ, '分支机构')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/branch/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '分支机构')
return res
# 工商变更
@staticmethod
def change_record(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ic/changeinfo/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_GSBJ, '变更记录')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ic/changeinfo/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_GSBJ, '变更记录')
return res
# 商标信息
@staticmethod
def trademark_information(**kwargs):
name = kwargs['name']
2022-08-25 17:16:59 +08:00
end_date = time.strftime('%Y-%m-%d', time.localtime())
begin_date = str(int(end_date[:4]) - 4) + '-01-01'
res = None
for code in range(1, 46):
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/tm/2.0?appDateBegin={begin_date}&pageSize=20&tmClass={code}&appDateEnd={end_date}&keyword={name}&pageNum={page_num}&status=1'
url = url.format(name=name, page_num=page_num, begin_date=begin_date, end_date=end_date, code=code)
res = special_frist_request(url, name, DB_ZSCQ, '商标信息', code)
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/tm/2.0?appDateBegin={begin_date}&pageSize=20&tmClass={code}&appDateEnd={end_date}&keyword={name}&pageNum={page}&status=1'
url = url.format(name=name, page=page, begin_date=begin_date, end_date=end_date, code=code)
res = special_page_request(url, name, DB_ZSCQ, '商标信息', code)
2022-08-18 17:09:23 +08:00
return res
# 专利信息
@staticmethod
def patent_information(**kwargs):
name = kwargs['name']
2022-08-25 17:16:59 +08:00
end_date = time.strftime('%Y-%m-%d', time.localtime())
begin_date = str(int(end_date[:4]) - 4) + '-01-01'
res = None
for code in range(1, 4):
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/patents/3.0?pubDateBegin={begin_date}&appDateBegin={begin_date}&pageSize=20&pubDateEnd={end_date}&appDateEnd={end_date}&keyword={name}&pageNum={page_num}&patentType={code}'
url = url.format(name=name, page_num=page_num, begin_date=begin_date, end_date=end_date, code=code)
res = special_frist_request(url, name, DB_ZSCQ, '专利信息', code)
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/patents/3.0?pubDateBegin={begin_date}&appDateBegin={begin_date}&pageSize=20&pubDateEnd={end_date}&appDateEnd={end_date}&keyword={name}&pageNum={page}&patentType={code}'
url = url.format(name=name, page=page, begin_date=begin_date, end_date=end_date, code=code)
res = special_page_request(url, name, DB_ZSCQ, '专利信息', code)
2022-08-18 17:09:23 +08:00
return res
# 软件著作权
@staticmethod
def software_copyrights(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/copyReg/2.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_ZSCQ, '软件著作权')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/copyReg/2.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_ZSCQ, '软件著作权')
return res
# 网站备案
@staticmethod
def website_record(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/ipr/icp/3.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_ZSCQ, '网站备案')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/ipr/icp/3.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_ZSCQ, '网站备案')
return res
# 开庭公告
@staticmethod
def hearing_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/ktannouncement/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '开庭公告')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/ktannouncement/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '开庭公告')
return res
# 被执行人
@staticmethod
def executor(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/zhixinginfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '被执行人')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/zhixinginfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '被执行人')
return res
# 法院公告
@staticmethod
def court_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/courtAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '法院公告')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/courtAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '法院公告')
return res
# 立案信息
@staticmethod
def case_filing_information(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/courtRegister/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '立案信息')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/courtRegister/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '立案信息')
return res
# 失信人
@staticmethod
def untrustworthy(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/dishonest/2.0?keyword={name}&pageNum={page_num}&pageSize=1'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '失信人')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/dishonest/2.0?keyword={name}&pageNum={page}&pageSize=1'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '失信人')
return res
# 法律诉讼
@staticmethod
def legal_proceedings(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/lawSuit/3.0?keyword={name}&pageNum={page_num}&pageSize=20'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '法律诉讼')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/lawSuit/3.0?keyword={name}&pageNum={page}&pageSize=20'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '法律诉讼')
return res
# 送达公告
@staticmethod
def delivery_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/sendAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '送达公告')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/sendAnnouncement/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '送达公告')
return res
# 破产重整
@staticmethod
def bankruptcy_reorganization(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/bankruptcy/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '破产重整')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/bankruptcy/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '破产重整')
return res
# 限制消费令
@staticmethod
def restricted_spending_order(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/consumptionRestriction/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '限制消费令')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/consumptionRestriction/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '限制消费令')
return res
# 终本案件
@staticmethod
def final_case(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/jr/endCase/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_SFFX, '终本案件')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/jr/endCase/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_SFFX, '终本案件')
return res
# 股权出质
@staticmethod
def equity_pledge(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/equityInfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '股权出质')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/equityInfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '股权出质')
return res
# 动产抵押
@staticmethod
def mortgage_movable_property(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/mortgageInfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '动产抵押')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/mortgageInfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '动产抵押')
return res
# 土地抵押
@staticmethod
def land_mortgage(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/landMortgage/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '土地抵押')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/landMortgage/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '土地抵押')
return res
# 经营异常
@staticmethod
def abnormal_operation(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '经营异常')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '经营异常')
return res
# 行政处罚
@staticmethod
def administrative_penalties(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/punishmentInfo/3.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '行政处罚')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/punishmentInfo/3.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '行政处罚')
return res
# 严重违法
@staticmethod
def serious_violation(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/illegalinfo/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '严重违法')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/illegalinfo/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '严重违法')
return res
# 税收违法
@staticmethod
def tax_violation(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/taxContravention/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '税收违法')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/taxContravention/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '税收违法')
return res
# 欠税公告
@staticmethod
def tax_arrears_announcement(**kwargs):
name = kwargs['name']
page_num = 1
url = 'http://open.api.tianyancha.com/services/open/mr/ownTax/2.0?pageSize=20&keyword={name}&pageNum={page_num}'
url = url.format(name=name, page_num=page_num)
2022-08-25 17:16:59 +08:00
res = frist_request(url, name, DB_JYFX, '欠税公告')
2022-08-18 17:09:23 +08:00
if res != '保存成功':
page_total = math.ceil(res / 20) + 1
page_total = 20 if page_total > 20 else page_total
for page in range(2, page_total):
url = 'http://open.api.tianyancha.com/services/open/mr/ownTax/2.0?pageSize=20&keyword={name}&pageNum={page}'
url = url.format(name=name, page=page)
res = page_request(url, name, DB_JYFX, '欠税公告')
return res
2022-08-19 00:05:09 +08:00