天眼查企业信息Python查询指南:从入门到实战
2025.09.18 16:00浏览量:0简介:本文详细介绍如何使用Python调用天眼查API查询企业信息,涵盖API申请、请求封装、数据解析及异常处理,提供完整代码示例与优化建议。
天眼查企业信息Python查询指南:从入门到实战
一、天眼查API的价值与适用场景
天眼查作为国内领先的企业信息查询平台,其API接口为开发者提供了结构化的企业数据获取能力。通过Python调用天眼查API,可实现以下核心价值:
- 效率提升:自动化替代手动查询,单次请求可获取企业基础信息、股东信息、法律诉讼等20+类数据字段。
- 数据整合:支持批量查询(单次最多100条),便于构建企业画像或风险监控系统。
- 场景覆盖:适用于金融风控、供应链管理、商业情报分析等场景,如核查供应商资质、监测关联方风险等。
典型案例:某供应链金融平台通过天眼查API实时获取企业工商信息与司法风险数据,将客户尽调时间从3天缩短至2小时,坏账率下降18%。
二、Python调用天眼查API的技术实现
1. API接入准备
- 申请流程:登录天眼查开放平台(https://open.tianyancha.com/),完成企业认证后获取API Key。
- 接口类型:
- 基础版:免费接口,每日限100次调用,包含企业基础信息。
- 专业版:付费接口,支持批量查询、深度数据(如股权结构、法律诉讼)。
- 安全要求:需使用HTTPS协议,请求头需包含
Authorization: Bearer {API_KEY}
。
2. Python请求封装
import requests
import json
from urllib.parse import quote
class TianYanChaAPI:
def __init__(self, api_key):
self.api_key = api_key
self.base_url = "https://api.tianyancha.com/services/open/ic/v2"
def get_company_info(self, company_name):
"""
查询企业基础信息
:param company_name: 企业名称(需URL编码)
:return: 解析后的JSON数据
"""
url = f"{self.base_url}/search/fulltext"
params = {
"key": self.api_key,
"q": quote(company_name),
"size": 1 # 返回匹配的第一条结果
}
headers = {"User-Agent": "Mozilla/5.0"}
try:
response = requests.get(url, params=params, headers=headers)
response.raise_for_status()
data = response.json()
if data.get("code") == 200:
return data["result"]
else:
raise Exception(f"API错误: {data.get('message')}")
except requests.exceptions.RequestException as e:
raise Exception(f"请求失败: {str(e)}")
def batch_query(self, company_names):
"""
批量查询企业信息(需专业版API)
:param company_names: 企业名称列表
:return: 字典格式的查询结果
"""
results = {}
for name in company_names:
try:
info = self.get_company_info(name)
results[name] = info
except Exception as e:
results[name] = {"error": str(e)}
return results
3. 数据解析与存储
天眼查返回的JSON数据包含多层嵌套结构,推荐使用pandas
进行扁平化处理:
import pandas as pd
def parse_company_data(raw_data):
"""解析企业基础信息"""
if not raw_data:
return pd.DataFrame()
# 提取关键字段
records = []
for item in raw_data:
records.append({
"企业名称": item.get("name"),
"统一社会信用代码": item.get("creditCode"),
"法定代表人": item.get("legalPersonName"),
"注册资本": item.get("regCapital"),
"成立日期": item.get("establishTime"),
"经营状态": item.get("businessStatus"),
"注册地址": item.get("regAddress")
})
return pd.DataFrame(records)
# 使用示例
api = TianYanChaAPI("your_api_key")
data = api.get_company_info("阿里巴巴")
df = parse_company_data([data])
df.to_csv("company_info.csv", index=False)
三、高级功能与优化策略
1. 批量查询效率优化
- 并发请求:使用
requests-futures
或asyncio
实现异步请求,将批量查询时间从线性增长转为并行处理。 - 缓存机制:对高频查询企业建立本地缓存(如Redis),避免重复调用API。
2. 数据质量增强
- 模糊匹配:当企业名称不准确时,可先调用搜索接口获取候选列表,再精确查询。
- 字段补全:结合工商数据库或第三方数据源,补充天眼查未覆盖的字段(如变更记录)。
3. 错误处理与限流规避
- 重试机制:对临时性错误(如502错误)自动重试3次,间隔时间递增。
- 请求间隔:专业版API建议每秒不超过5次请求,基础版不超过1次/秒。
四、典型应用场景代码示例
场景1:企业风险监控
def monitor_risk(company_name):
"""监测企业司法风险"""
api = TianYanChaAPI("your_api_key")
try:
# 先获取企业ID
base_info = api.get_company_info(company_name)
company_id = base_info[0]["id"]
# 查询法律诉讼
lawsuit_url = f"{api.base_url}/lawsuit/list"
params = {
"key": api.api_key,
"id": company_id,
"size": 10 # 最近10条诉讼
}
response = requests.get(lawsuit_url, params=params)
lawsuits = response.json().get("result", [])
# 判断风险等级
critical_cases = [case for case in lawsuits if case["caseType"] == "民事案件"]
return {
"has_risk": len(critical_cases) > 0,
"risk_details": critical_cases
}
except Exception as e:
return {"error": str(e)}
场景2:供应链企业筛查
def screen_suppliers(supplier_list):
"""筛查供应商资质"""
api = TianYanChaAPI("your_api_key")
results = []
for supplier in supplier_list:
try:
info = api.get_company_info(supplier)
if not info:
results.append({"name": supplier, "status": "未查询到"})
continue
# 关键资质检查
is_valid = (
info[0]["businessStatus"] == "存续" and
float(info[0]["regCapital"].replace("万人民币", "")) >= 100 # 注册资本≥100万
)
results.append({
"name": supplier,
"status": "合格" if is_valid else "不合格",
"reason": "注册资本不足" if not is_valid else ""
})
except Exception as e:
results.append({"name": supplier, "status": "查询失败", "error": str(e)})
return pd.DataFrame(results)
五、注意事项与合规要求
- 数据使用限制:天眼查API数据仅限内部使用,不得直接转售或用于构建竞品。
- 频率控制:免费版每日调用上限为100次,专业版需购买套餐。
- 隐私保护:查询结果包含个人信息(如法定代表人身份证号),需按《个人信息保护法》处理。
- 版本更新:天眼查可能调整API字段或认证方式,建议定期检查官方文档。
六、总结与延伸建议
通过Python调用天眼查API,可高效实现企业信息自动化采集与分析。对于高频使用场景,建议:
- 部署本地代理服务器,缓存常用数据以减少API调用。
- 结合NLP技术解析法律诉讼文书,提取风险关键词。
- 开发可视化看板,实时展示企业风险热力图。
开发者可参考天眼查官方文档(https://open.tianyancha.com/docs/)获取最新接口说明,同时关注GitHub上开源的`tianyancha-python`项目以获取社区支持。
发表评论
登录后可评论,请前往 登录 或 注册