logo

天眼查企业信息Python查询指南:从入门到实战

作者:carzy2025.09.18 16:00浏览量:0

简介:本文详细介绍如何使用Python调用天眼查API查询企业信息,涵盖API申请、请求封装、数据解析及异常处理,提供完整代码示例与优化建议。

天眼查企业信息Python查询指南:从入门到实战

一、天眼查API的价值与适用场景

天眼查作为国内领先的企业信息查询平台,其API接口为开发者提供了结构化的企业数据获取能力。通过Python调用天眼查API,可实现以下核心价值:

  1. 效率提升:自动化替代手动查询,单次请求可获取企业基础信息、股东信息、法律诉讼等20+类数据字段。
  2. 数据整合:支持批量查询(单次最多100条),便于构建企业画像或风险监控系统。
  3. 场景覆盖:适用于金融风控、供应链管理、商业情报分析等场景,如核查供应商资质、监测关联方风险等。

典型案例:某供应链金融平台通过天眼查API实时获取企业工商信息与司法风险数据,将客户尽调时间从3天缩短至2小时,坏账率下降18%。

二、Python调用天眼查API的技术实现

1. API接入准备

  • 申请流程:登录天眼查开放平台(https://open.tianyancha.com/),完成企业认证后获取API Key。
  • 接口类型
    • 基础版:免费接口,每日限100次调用,包含企业基础信息。
    • 专业版:付费接口,支持批量查询、深度数据(如股权结构、法律诉讼)。
  • 安全要求:需使用HTTPS协议,请求头需包含Authorization: Bearer {API_KEY}

2. Python请求封装

  1. import requests
  2. import json
  3. from urllib.parse import quote
  4. class TianYanChaAPI:
  5. def __init__(self, api_key):
  6. self.api_key = api_key
  7. self.base_url = "https://api.tianyancha.com/services/open/ic/v2"
  8. def get_company_info(self, company_name):
  9. """
  10. 查询企业基础信息
  11. :param company_name: 企业名称(需URL编码)
  12. :return: 解析后的JSON数据
  13. """
  14. url = f"{self.base_url}/search/fulltext"
  15. params = {
  16. "key": self.api_key,
  17. "q": quote(company_name),
  18. "size": 1 # 返回匹配的第一条结果
  19. }
  20. headers = {"User-Agent": "Mozilla/5.0"}
  21. try:
  22. response = requests.get(url, params=params, headers=headers)
  23. response.raise_for_status()
  24. data = response.json()
  25. if data.get("code") == 200:
  26. return data["result"]
  27. else:
  28. raise Exception(f"API错误: {data.get('message')}")
  29. except requests.exceptions.RequestException as e:
  30. raise Exception(f"请求失败: {str(e)}")
  31. def batch_query(self, company_names):
  32. """
  33. 批量查询企业信息(需专业版API)
  34. :param company_names: 企业名称列表
  35. :return: 字典格式的查询结果
  36. """
  37. results = {}
  38. for name in company_names:
  39. try:
  40. info = self.get_company_info(name)
  41. results[name] = info
  42. except Exception as e:
  43. results[name] = {"error": str(e)}
  44. return results

3. 数据解析与存储

天眼查返回的JSON数据包含多层嵌套结构,推荐使用pandas进行扁平化处理:

  1. import pandas as pd
  2. def parse_company_data(raw_data):
  3. """解析企业基础信息"""
  4. if not raw_data:
  5. return pd.DataFrame()
  6. # 提取关键字段
  7. records = []
  8. for item in raw_data:
  9. records.append({
  10. "企业名称": item.get("name"),
  11. "统一社会信用代码": item.get("creditCode"),
  12. "法定代表人": item.get("legalPersonName"),
  13. "注册资本": item.get("regCapital"),
  14. "成立日期": item.get("establishTime"),
  15. "经营状态": item.get("businessStatus"),
  16. "注册地址": item.get("regAddress")
  17. })
  18. return pd.DataFrame(records)
  19. # 使用示例
  20. api = TianYanChaAPI("your_api_key")
  21. data = api.get_company_info("阿里巴巴")
  22. df = parse_company_data([data])
  23. df.to_csv("company_info.csv", index=False)

三、高级功能与优化策略

1. 批量查询效率优化

  • 并发请求:使用requests-futuresasyncio实现异步请求,将批量查询时间从线性增长转为并行处理。
  • 缓存机制:对高频查询企业建立本地缓存(如Redis),避免重复调用API。

2. 数据质量增强

  • 模糊匹配:当企业名称不准确时,可先调用搜索接口获取候选列表,再精确查询。
  • 字段补全:结合工商数据库或第三方数据源,补充天眼查未覆盖的字段(如变更记录)。

3. 错误处理与限流规避

  • 重试机制:对临时性错误(如502错误)自动重试3次,间隔时间递增。
  • 请求间隔:专业版API建议每秒不超过5次请求,基础版不超过1次/秒。

四、典型应用场景代码示例

场景1:企业风险监控

  1. def monitor_risk(company_name):
  2. """监测企业司法风险"""
  3. api = TianYanChaAPI("your_api_key")
  4. try:
  5. # 先获取企业ID
  6. base_info = api.get_company_info(company_name)
  7. company_id = base_info[0]["id"]
  8. # 查询法律诉讼
  9. lawsuit_url = f"{api.base_url}/lawsuit/list"
  10. params = {
  11. "key": api.api_key,
  12. "id": company_id,
  13. "size": 10 # 最近10条诉讼
  14. }
  15. response = requests.get(lawsuit_url, params=params)
  16. lawsuits = response.json().get("result", [])
  17. # 判断风险等级
  18. critical_cases = [case for case in lawsuits if case["caseType"] == "民事案件"]
  19. return {
  20. "has_risk": len(critical_cases) > 0,
  21. "risk_details": critical_cases
  22. }
  23. except Exception as e:
  24. return {"error": str(e)}

场景2:供应链企业筛查

  1. def screen_suppliers(supplier_list):
  2. """筛查供应商资质"""
  3. api = TianYanChaAPI("your_api_key")
  4. results = []
  5. for supplier in supplier_list:
  6. try:
  7. info = api.get_company_info(supplier)
  8. if not info:
  9. results.append({"name": supplier, "status": "未查询到"})
  10. continue
  11. # 关键资质检查
  12. is_valid = (
  13. info[0]["businessStatus"] == "存续" and
  14. float(info[0]["regCapital"].replace("万人民币", "")) >= 100 # 注册资本≥100万
  15. )
  16. results.append({
  17. "name": supplier,
  18. "status": "合格" if is_valid else "不合格",
  19. "reason": "注册资本不足" if not is_valid else ""
  20. })
  21. except Exception as e:
  22. results.append({"name": supplier, "status": "查询失败", "error": str(e)})
  23. return pd.DataFrame(results)

五、注意事项与合规要求

  1. 数据使用限制:天眼查API数据仅限内部使用,不得直接转售或用于构建竞品。
  2. 频率控制:免费版每日调用上限为100次,专业版需购买套餐。
  3. 隐私保护:查询结果包含个人信息(如法定代表人身份证号),需按《个人信息保护法》处理。
  4. 版本更新:天眼查可能调整API字段或认证方式,建议定期检查官方文档

六、总结与延伸建议

通过Python调用天眼查API,可高效实现企业信息自动化采集与分析。对于高频使用场景,建议:

  1. 部署本地代理服务器,缓存常用数据以减少API调用。
  2. 结合NLP技术解析法律诉讼文书,提取风险关键词。
  3. 开发可视化看板,实时展示企业风险热力图。

开发者可参考天眼查官方文档(https://open.tianyancha.com/docs/)获取最新接口说明,同时关注GitHub上开源的`tianyancha-python`项目以获取社区支持。

相关文章推荐

发表评论