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 环境配置
# 安装必要库
pip install requests pandas
2.2 API请求封装
import requests
import json
from typing import Dict, Optional
class AiqichaAPI:
def __init__(self, api_key: str, api_secret: str):
self.api_key = api_key
self.api_secret = api_secret
self.base_url = "https://api.aiqicha.cn" # 示例域名,需替换为实际API地址
def _get_access_token(self) -> str:
"""获取API访问令牌"""
url = f"{self.base_url}/auth/token"
params = {
"api_key": self.api_key,
"api_secret": self.api_secret
}
response = requests.get(url, params=params)
return response.json().get("access_token")
def search_company(self, company_name: str, region_code: str = "110000") -> Optional[Dict]:
"""企业名称搜索"""
token = self._get_access_token()
url = f"{self.base_url}/api/company/search"
headers = {"Authorization": f"Bearer {token}"}
params = {
"keyword": company_name,
"region_code": region_code
}
response = requests.get(url, headers=headers, params=params)
return response.json().get("data", [])[0] if response.json().get("data") else None
def get_company_detail(self, company_id: str) -> Optional[Dict]:
"""获取企业详情"""
token = self._get_access_token()
url = f"{self.base_url}/api/company/detail"
headers = {"Authorization": f"Bearer {token}"}
params = {"company_id": company_id}
response = requests.get(url, headers=headers, params=params)
return response.json().get("data")
2.3 完整查询流程
def query_company_info(api_client: AiqichaAPI, company_name: str) -> Optional[Dict]:
"""完整查询流程"""
# 1. 搜索企业
search_result = api_client.search_company(company_name)
if not search_result:
print(f"未找到企业: {company_name}")
return None
# 2. 获取企业ID
company_id = search_result.get("company_id")
# 3. 查询详情
detail = api_client.get_company_detail(company_id)
if not detail:
print(f"获取企业详情失败: {company_id}")
return None
return {
"basic_info": search_result,
"detail_info": detail
}
三、关键字段解析与处理
3.1 基础信息字段
- 统一社会信用代码:企业的唯一标识,需验证长度(18位)及校验位
- 注册资本:需处理单位(万元/元)及币种
- 成立日期:转换为datetime对象便于计算企业存续时间
3.2 股东信息处理
def parse_shareholders(detail_info: Dict) -> list:
"""解析股东信息"""
shareholders = detail_info.get("shareholders", [])
parsed = []
for sh in shareholders:
parsed.append({
"name": sh.get("shareholder_name"),
"type": sh.get("shareholder_type"), # 法人/自然人
"equity_ratio": float(sh.get("equity_ratio", 0)), # 股权比例
"subscribe_amount": sh.get("subscribe_amount") # 出资额
})
return parsed
3.3 法律诉讼信息
def parse_lawsuits(detail_info: Dict) -> list:
"""解析法律诉讼信息"""
lawsuits = detail_info.get("lawsuits", [])
parsed = []
for case in lawsuits:
parsed.append({
"case_no": case.get("case_no"),
"court": case.get("court"),
"case_type": case.get("case_type"), # 民事/刑事
"status": case.get("status"), # 已结案/审理中
"date": case.get("filing_date")
})
return parsed
四、异常处理与优化
4.1 常见异常场景
- API限流:通过
try-except
捕获429错误,实现指数退避重试 - 数据缺失:检查关键字段是否存在,提供默认值
- 网络超时:设置合理的
timeout
参数
4.2 性能优化建议
- 批量查询:对大量企业名称,使用多线程/异步请求
- 缓存机制:对已查询企业建立本地缓存(如SQLite)
- 日志记录:记录查询失败的企业名称及错误原因
五、完整示例与输出
5.1 示例代码
if __name__ == "__main__":
# 替换为实际API密钥
api_key = "your_api_key"
api_secret = "your_api_secret"
client = AiqichaAPI(api_key, api_secret)
company_name = "阿里巴巴"
result = query_company_info(client, company_name)
if result:
# 保存到CSV
import pandas as pd
df = pd.DataFrame([{
"企业名称": result["basic_info"].get("company_name"),
"统一社会信用代码": result["basic_info"].get("credit_code"),
"法定代表人": result["basic_info"].get("legal_person"),
"注册资本": result["basic_info"].get("reg_capital"),
"成立日期": result["basic_info"].get("establish_date"),
"股东数量": len(parse_shareholders(result["detail_info"])),
"诉讼数量": len(parse_lawsuits(result["detail_info"]))
}])
df.to_csv("company_info.csv", index=False, encoding="utf-8-sig")
print("查询成功,结果已保存到company_info.csv")
5.2 输出示例
企业名称,统一社会信用代码,法定代表人,注册资本,成立日期,股东数量,诉讼数量
阿里巴巴集团控股有限公司,913301087934503888,张勇,1000000万元人民币,1999-09-09,5,12
六、注意事项与合规性
- API使用限制:严格遵守爱企查API的调用频率限制,避免被封禁
- 数据隐私:不得将查询结果用于非法用途,尤其是涉及个人隐私的信息
- 错误处理:对API返回的错误码(如404、500)进行分类处理
- 版本更新:定期检查API文档更新,适配字段变更
结论
通过Python结合爱企查API,可实现企业信息的自动化高效查询。本文提供的代码框架覆盖了从API接入到数据解析的全流程,开发者可根据实际需求扩展功能(如添加更多字段解析、实现可视化展示等)。在实际应用中,建议结合异常处理机制和性能优化策略,确保系统的稳定性和可扩展性。
发表评论
登录后可评论,请前往 登录 或 注册