logo

Python实现企业名称查询:爱企查详情信息自动化获取指南

作者:谁偷走了我的奶酪2025.09.18 16:01浏览量:0

简介:本文详细介绍如何使用Python根据输入的企业名称,通过爱企查API自动化查询企业详情信息,包括关键字段提取、API调用技巧及异常处理。

Python实现企业名称查询:爱企查详情信息自动化获取指南

引言:企业信息查询的自动化需求

在商业分析、尽职调查、市场研究等场景中,快速获取企业基础信息(如工商注册信息、股东结构、法律诉讼等)是关键环节。传统方式依赖人工网页搜索,存在效率低、信息不完整等问题。通过Python结合爱企查API,可实现企业信息的自动化批量查询,显著提升工作效率。本文将详细介绍从API接入到数据解析的全流程实现。

一、爱企查API接入准备

1.1 API服务开通

爱企查提供企业信息查询API接口,需通过官方渠道申请API密钥。申请流程包括:

  • 注册爱企查开发者账号
  • 提交应用信息(如应用名称、使用场景)
  • 获取API Key及Secret
  • 了解服务等级(免费版/付费版)及调用限制(如QPS、每日调用次数)

1.2 接口文档解读

关键接口包括:

  • 企业基础信息查询/api/company/search
    • 输入参数:企业名称(支持模糊匹配)、地区码
    • 输出字段:统一社会信用代码、法定代表人、注册资本、成立日期等
  • 企业详情查询/api/company/detail
    • 输入参数:企业ID或统一社会信用代码
    • 输出字段:股东信息、变更记录、分支机构等

二、Python实现核心代码

2.1 环境配置

  1. # 安装必要库
  2. pip install requests pandas

2.2 API请求封装

  1. import requests
  2. import json
  3. from typing import Dict, Optional
  4. class AiqichaAPI:
  5. def __init__(self, api_key: str, api_secret: str):
  6. self.api_key = api_key
  7. self.api_secret = api_secret
  8. self.base_url = "https://api.aiqicha.cn" # 示例域名,需替换为实际API地址
  9. def _get_access_token(self) -> str:
  10. """获取API访问令牌"""
  11. url = f"{self.base_url}/auth/token"
  12. params = {
  13. "api_key": self.api_key,
  14. "api_secret": self.api_secret
  15. }
  16. response = requests.get(url, params=params)
  17. return response.json().get("access_token")
  18. def search_company(self, company_name: str, region_code: str = "110000") -> Optional[Dict]:
  19. """企业名称搜索"""
  20. token = self._get_access_token()
  21. url = f"{self.base_url}/api/company/search"
  22. headers = {"Authorization": f"Bearer {token}"}
  23. params = {
  24. "keyword": company_name,
  25. "region_code": region_code
  26. }
  27. response = requests.get(url, headers=headers, params=params)
  28. return response.json().get("data", [])[0] if response.json().get("data") else None
  29. def get_company_detail(self, company_id: str) -> Optional[Dict]:
  30. """获取企业详情"""
  31. token = self._get_access_token()
  32. url = f"{self.base_url}/api/company/detail"
  33. headers = {"Authorization": f"Bearer {token}"}
  34. params = {"company_id": company_id}
  35. response = requests.get(url, headers=headers, params=params)
  36. return response.json().get("data")

2.3 完整查询流程

  1. def query_company_info(api_client: AiqichaAPI, company_name: str) -> Optional[Dict]:
  2. """完整查询流程"""
  3. # 1. 搜索企业
  4. search_result = api_client.search_company(company_name)
  5. if not search_result:
  6. print(f"未找到企业: {company_name}")
  7. return None
  8. # 2. 获取企业ID
  9. company_id = search_result.get("company_id")
  10. # 3. 查询详情
  11. detail = api_client.get_company_detail(company_id)
  12. if not detail:
  13. print(f"获取企业详情失败: {company_id}")
  14. return None
  15. return {
  16. "basic_info": search_result,
  17. "detail_info": detail
  18. }

三、关键字段解析与处理

3.1 基础信息字段

  • 统一社会信用代码:企业的唯一标识,需验证长度(18位)及校验位
  • 注册资本:需处理单位(万元/元)及币种
  • 成立日期:转换为datetime对象便于计算企业存续时间

3.2 股东信息处理

  1. def parse_shareholders(detail_info: Dict) -> list:
  2. """解析股东信息"""
  3. shareholders = detail_info.get("shareholders", [])
  4. parsed = []
  5. for sh in shareholders:
  6. parsed.append({
  7. "name": sh.get("shareholder_name"),
  8. "type": sh.get("shareholder_type"), # 法人/自然人
  9. "equity_ratio": float(sh.get("equity_ratio", 0)), # 股权比例
  10. "subscribe_amount": sh.get("subscribe_amount") # 出资额
  11. })
  12. return parsed

3.3 法律诉讼信息

  1. def parse_lawsuits(detail_info: Dict) -> list:
  2. """解析法律诉讼信息"""
  3. lawsuits = detail_info.get("lawsuits", [])
  4. parsed = []
  5. for case in lawsuits:
  6. parsed.append({
  7. "case_no": case.get("case_no"),
  8. "court": case.get("court"),
  9. "case_type": case.get("case_type"), # 民事/刑事
  10. "status": case.get("status"), # 已结案/审理中
  11. "date": case.get("filing_date")
  12. })
  13. return parsed

四、异常处理与优化

4.1 常见异常场景

  • API限流:通过try-except捕获429错误,实现指数退避重试
  • 数据缺失:检查关键字段是否存在,提供默认值
  • 网络超时:设置合理的timeout参数

4.2 性能优化建议

  • 批量查询:对大量企业名称,使用多线程/异步请求
  • 缓存机制:对已查询企业建立本地缓存(如SQLite)
  • 日志记录:记录查询失败的企业名称及错误原因

五、完整示例与输出

5.1 示例代码

  1. if __name__ == "__main__":
  2. # 替换为实际API密钥
  3. api_key = "your_api_key"
  4. api_secret = "your_api_secret"
  5. client = AiqichaAPI(api_key, api_secret)
  6. company_name = "阿里巴巴"
  7. result = query_company_info(client, company_name)
  8. if result:
  9. # 保存到CSV
  10. import pandas as pd
  11. df = pd.DataFrame([{
  12. "企业名称": result["basic_info"].get("company_name"),
  13. "统一社会信用代码": result["basic_info"].get("credit_code"),
  14. "法定代表人": result["basic_info"].get("legal_person"),
  15. "注册资本": result["basic_info"].get("reg_capital"),
  16. "成立日期": result["basic_info"].get("establish_date"),
  17. "股东数量": len(parse_shareholders(result["detail_info"])),
  18. "诉讼数量": len(parse_lawsuits(result["detail_info"]))
  19. }])
  20. df.to_csv("company_info.csv", index=False, encoding="utf-8-sig")
  21. print("查询成功,结果已保存到company_info.csv")

5.2 输出示例

  1. 企业名称,统一社会信用代码,法定代表人,注册资本,成立日期,股东数量,诉讼数量
  2. 阿里巴巴集团控股有限公司,913301087934503888,张勇,1000000万元人民币,1999-09-09,5,12

六、注意事项与合规性

  1. API使用限制:严格遵守爱企查API的调用频率限制,避免被封禁
  2. 数据隐私:不得将查询结果用于非法用途,尤其是涉及个人隐私的信息
  3. 错误处理:对API返回的错误码(如404、500)进行分类处理
  4. 版本更新:定期检查API文档更新,适配字段变更

结论

通过Python结合爱企查API,可实现企业信息的自动化高效查询。本文提供的代码框架覆盖了从API接入到数据解析的全流程,开发者可根据实际需求扩展功能(如添加更多字段解析、实现可视化展示等)。在实际应用中,建议结合异常处理机制和性能优化策略,确保系统的稳定性和可扩展性。

相关文章推荐

发表评论