news 2026/2/22 15:39:57

顺企网 item_search - 根据关键词获取企业列表接口对接全攻略:从入门到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
顺企网 item_search - 根据关键词获取企业列表接口对接全攻略:从入门到精通

顺企网item_search接口是按关键词检索企业列表的核心入口,支持通过关键词、行业、地区、经营状态、资质等多维度筛选,返回分页企业基础信息(含ent_id、名称、信用代码、经营状态、联系人等),可联动item_get接口获取详情。该接口采用HTTPS + HMAC‑SHA256 签名认证,权限分级严格,适配供应商筛选、市场调研、行业数据统计等场景。本攻略从接口认知、权限获取、实操对接、调试排错到生产级优化,提供结构化全链路指导,兼顾合规性与稳定性。


一、接口核心认知:功能与适配场景

1. 接口定位与核心价值

  • 核心功能:输入关键词(如 “江西新余 废旧物资回收”),搭配行业、地区、经营状态等筛选条件,返回分页企业列表;支持按成立时间、注册资本、信用评级排序,单页最多返回 50 条,适配批量数据采集与实时查询。
  • 行业特性
    • 强行业属性:筛选维度含行业大类 / 子类、经营资质,支持按再生资源回收、环保工程等专业领域筛选;
    • 数据权威度高:企业信息来自工商登记、官方备案,更新周期为 24 小时;
    • 资质强关联:无有效资质企业不返回敏感数据,保障数据合规性;
    • 风控严格:单 IP 调用频率超限会触发临时封禁,需控制请求间隔。
  • 典型场景
    1. 供应商筛选系统:按行业 + 地区批量筛选企业,对比资质与信用;
    2. 市场调研分析:统计特定行业企业分布、规模、经营状况;
    3. 行业数据统计:抓取区域企业数据,生成行业趋势报告;
    4. 风控系统:按经营状态筛选异常企业,预警合作风险。

2. 核心参数与返回字段

(1)请求参数(公共参数 + 私有参数,POST 提交)
参数类型参数名称类型是否必填说明应用示例
公共参数app_keystring开放平台应用 IDshunqi_20260101
timestamplong毫秒级时间戳1735689600000
signstringHMAC‑SHA256 签名32 位小写哈希串
versionstring接口版本v3
methodstring接口方法名shunqi.ent.search
私有参数qstring搜索关键词江西新余 废旧物资回收
industrystring行业大类再生资源回收
sub_industrystring行业子类废金属回收
regionstring地区(省 / 市 / 区)江西新余
reg_statusstring经营状态存续/经营异常/注销
credit_ratingstring信用评级AAA/AA/A/B/C
sortstring排序方式establish_date_desc/reg_capital_desc/credit_rating_desc
page_noint页码,默认 11
page_sizeint单页条数,默认 20,最大 5050

注意事项

  1. 关键词支持空格分隔多条件(如 “废旧物资回收 江西新余”),接口自动分词匹配;
  2. region未传入时返回全国企业,传入后返回指定区域企业;
  3. 时间戳有效期 5 分钟,超出则签名失效。
(2)返回核心字段(按业务场景分类)
字段分类核心字段说明
基础信息ent_id企业唯一 ID(用于调用item_get
ent_name企业名称
credit_code统一社会信用代码
reg_status经营状态(存续 / 注销 / 吊销 / 经营异常)
reg_capital注册资本(万元)
establish_date成立日期
legal_person法定代表人
industry行业大类
sub_industry行业子类
联系方式contact_person联系人
contact_phone联系电话
contact_email联系邮箱
website企业官网
信用与资质credit_rating信用评级
qualification_count资质证书数量
blacklist_flag是否列入黑名单(0 = 否,1 = 是)
分页信息total_results搜索结果总数
page_no当前页码
page_size单页条数
has_more是否有下一页(true/false)

提示:item_search仅返回基础信息,详细资质、股权结构等需调用item_get获取。

3. 接口限制与注意事项

权限类型日调用上限调用频率适用场景
个人测试500 次 / IP2 次 / 秒功能调试、个人研究
企业基础5000 次 / IP10 次 / 秒中小型企业供应商筛选、市场调研
企业高级50000 次 / IP50 次 / 秒大型征信平台、风控系统、行业数据统计
  • 数据缓存:企业列表缓存 24 小时,信用评级缓存 12 小时,高频查询建议本地缓存;
  • 内容限制:未公示企业、注销企业不返回敏感数据;
  • 合规要求:数据仅用于合规企业征信、供应商筛选、市场调研等业务,遵守《企业信息公示暂行条例》《个人信息保护法》等法规。

二、对接前准备:权限与环境搭建

1. 获取接口权限(官方唯一合规路径)

顺企网item_search接口由顺企网开放平台提供,无通用公共接口,接入步骤如下:

  1. 登录顺企网开放平台,注册企业账号;
  2. 提交资质审核:企业营业执照、法人身份证、应用用途说明等材料;
  3. 创建应用,填写应用名称、用途、服务器 IP,提交审核;
  4. 审核通过后获取app_keyapp_secret,配置 IP 白名单;
  5. 申请item_search权限,根据业务需求选择权限等级(基础 / 进阶 / 高级)。

风险提示:严禁使用非合规爬虫或第三方接口,违反平台协议与法规可能导致账号封禁、法律追责。

2. 技术环境准备

(1)支持语言与协议
  • 协议:HTTPS(强制,HTTP 请求会被拦截);
  • 开发语言:Python、Java、PHP、Go 等主流语言,推荐 Python(适配签名生成与复杂数据解析)。
(2)必备工具与依赖
工具类型推荐工具用途
调试工具顺企网官方调试工具自动生成签名,验证接口参数与响应
Postman模拟 POST 请求,排查代码逻辑问题
时间戳生成器生成毫秒级时间戳,确保格式正确
开发依赖requests发送 HTTPS POST 请求
hashlib/hmac生成 HMAC‑SHA256 签名
pandas批量整理企业列表数据
jsonpath-ng快速解析嵌套 JSON 响应
辅助工具Redis缓存企业列表数据,减少接口调用次数
logging记录接口调用日志,便于审计与问题追溯

三、实操步骤:接口对接全流程(Python 示例)

步骤 1:理解签名认证规则(核心,必掌握)

顺企网接口采用HMAC‑SHA256签名机制,流程如下:

  1. 收集所有请求参数(公共参数 + 私有参数),排除sign字段;
  2. 参数名 ASCII 码升序排序;
  3. 拼接成key1=value1&key2=value2&...的字符串(参数值需 UTF-8 编码);
  4. 末尾拼接&app_secret=你的app_secret
  5. 使用app_secret作为密钥,对拼接字符串进行 HMAC‑SHA256 加密,生成 32 位小写签名串,作为sign参数值。

步骤 2:完整代码实现(含签名 + 调用 + 数据标准化)

(1)依赖安装

bash

pip install requests pandas jsonpath-ng
(2)Python 代码实现
import requests import hmac import hashlib import time import pandas as pd import logging from urllib.parse import urlencode # 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex # 日志配置 logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s", handlers=[logging.FileHandler("shunqi_item_search.log"), logging.StreamHandler()] ) # 配置信息(替换为你的顺企网开放平台信息) CONFIG = { "app_key": "你的app_key", "app_secret": "你的app_secret", "api_url": "https://open.shunqi.com/api/v3/shunqi/ent/search", "version": "v3" } def generate_sign(params: dict, app_secret: str) -> str: """生成顺企网接口HMAC-SHA256签名""" # 1. 排除sign字段,筛选非空参数 filtered_params = {k: v for k, v in params.items() if v and k != "sign"} # 2. 按参数名ASCII升序排序 sorted_params = sorted(filtered_params.items(), key=lambda x: x[0]) # 3. 拼接参数字符串(UTF-8编码) param_str = urlencode(sorted_params, encoding="utf-8") + f"&app_secret={app_secret}" # 4. HMAC-SHA256加密,生成小写签名 sign = hmac.new( app_secret.encode("utf-8"), param_str.encode("utf-8"), hashlib.sha256 ).hexdigest().lower() return sign def standardize_ent_list_data(raw_ent: dict) -> dict: """标准化顺企网企业列表数据,统一输出格式""" contact_info = raw_ent.get("contact_info", {}) return { "企业ID": raw_ent.get("ent_id", ""), "企业名称": raw_ent.get("ent_name", ""), "统一社会信用代码": raw_ent.get("credit_code", ""), "经营状态": raw_ent.get("reg_status", ""), "注册资本(万元)": raw_ent.get("reg_capital", 0), "成立日期": raw_ent.get("establish_date", ""), "法定代表人": raw_ent.get("legal_person", ""), "行业大类": raw_ent.get("industry", ""), "行业子类": raw_ent.get("sub_industry", ""), "联系人": contact_info.get("contact_person", ""), "联系电话": contact_info.get("contact_phone", ""), "信用评级": raw_ent.get("credit_rating", ""), "资质证书数量": raw_ent.get("qualification_count", 0), "是否黑名单": raw_ent.get("blacklist_flag", 0), "请求时间": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } def shunqi_item_search( keyword: str, industry: str = None, region: str = None, reg_status: str = None, sort: str = "establish_date_desc", page_no: int = 1, page_size: int = 20 ) -> dict: """调用顺企网item_search接口获取企业列表""" # 1. 构建请求参数 params = { "app_key": CONFIG["app_key"], "method": "shunqi.ent.search", "timestamp": str(int(time.time() * 1000)), "version": CONFIG["version"], "q": keyword, "sort": sort, "page_no": page_no, "page_size": min(page_size, 50) # 单页最大50条 } # 补充分筛参数 if industry: params["industry"] = industry if region: params["region"] = region if reg_status: params["reg_status"] = reg_status # 2. 生成签名 params["sign"] = generate_sign(params, CONFIG["app_secret"]) try: # 3. 发送POST请求 response = requests.post( url=CONFIG["api_url"], data=params, headers={"Content-Type": "application/x-www-form-urlencoded; charset=utf-8"}, timeout=10, verify=True ) response.raise_for_status() result = response.json() # 4. 解析响应结果 if result.get("code") != 0: error_msg = f"{result.get('code')}: {result.get('msg')}" logging.error(f"接口调用失败(关键词:{keyword}):{error_msg}") return {"success": False, "error_msg": error_msg, "data": [], "pagination": {}} search_resp = result.get("data", {}) raw_ents = search_resp.get("items", {}).get("item", []) if not raw_ents: logging.warning(f"无企业数据返回(关键词:{keyword})") return {"success": False, "error_msg": "无企业数据", "data": [], "pagination": {}} # 5. 标准化数据 standard_ents = [standardize_ent_list_data(ent) for ent in raw_ents] pagination = { "total_results": int(search_resp.get("total_results", 0)), "page_no": page_no, "page_size": page_size, "has_more": search_resp.get("has_more", False) } return {"success": True, "data": standard_ents, "pagination": pagination, "error_msg": ""} except requests.exceptions.RequestException as e: logging.error(f"网络请求异常(关键词:{keyword}):{str(e)}") return {"success": False, "error_msg": f"网络异常:{str(e)}", "data": [], "pagination": {}} except Exception as e: logging.error(f"数据解析异常(关键词:{keyword}):{str(e)}") return {"success": False, "error_msg": f"解析异常:{str(e)}", "data": [], "pagination": {}} # 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex # 调用示例 if __name__ == "__main__": keyword = "江西新余 废旧物资回收" industry = "再生资源回收" region = "江西新余" page_size = 20 result = shunqi_item_search( keyword=keyword, industry=industry, region=region, page_size=page_size ) if result["success"]: print(f"搜索成功:共 {result['pagination']['total_results']} 条,当前页 {len(result['data'])} 条") for item in result["data"][:5]: print(f"企业ID:{item['企业ID']} | 名称:{item['企业名称']} | 经营状态:{item['经营状态']}") # 保存为Excel df = pd.DataFrame(result["data"]) df.to_excel(f"shunqi_ent_list_{keyword}.xlsx", index=False) # 翻页示例 if result["pagination"]["has_more"]: next_page = shunqi_item_search( keyword=keyword, industry=industry, region=region, page_no=2, page_size=page_size ) print(f"下一页获取 {len(next_page['data'])} 条") else: print(f"获取失败:{result['error_msg']}")

四、调试与问题排查:快速解决对接异常

1. 优先用官方工具调试(排除签名问题)

  1. 登录顺企网开放平台调试工具,选择shunqi.ent.search接口;
  2. 输入关键词、行业、地区等参数,工具自动生成签名;
  3. 发送请求,查看响应结果。若官方工具调用成功,说明代码签名逻辑有误;若失败,检查权限或参数。

2. 高频问题排查表

问题现象常见原因解决方案
签名验证失败(401)1. app_key/app_secret 错误;2. 参数排序错误;3. 时间戳过期;4. 参数值未 UTF-8 编码1. 核对平台应用信息;2. 严格按参数名 ASCII 升序排序;3. 校准本地时间,确保时间戳在 5 分钟内;4. 对中文参数值进行 UTF-8 编码
权限不足(403)1. 未申请 item_search 接口权限;2. IP 不在白名单;3. 企业资质未审核通过1. 在开放平台申请对应权限;2. 添加服务器 IP 到白名单;3. 补充资质材料,完成审核
参数错误(400)1. 关键词为空;2. page_size>50;3. industry/reg_status 取值错误1. 确保 q 参数非空;2. page_size≤50;3. 核对行业 / 经营状态枚举值
无企业数据返回1. 关键词无匹配;2. 筛选过严;3. 企业无资质 / 已注销1. 简化关键词;2. 放宽筛选条件;3. 更换有效关键词
响应超时(504)1. 网络波动;2. 网关拥堵;3. 单页条数过多1. 添加重试机制;2. 避开高峰期;3. 减小 page_size

五、进阶优化:生产级稳定性提升

1. 性能与配额优化

  • 批量翻页优化:通过has_more判断翻页,避免无效请求;多关键词用异步并发(aiohttp),控制并发数≤权限允许的频率上限(如企业基础权限 10 次 / 秒);
  • 智能缓存策略:用 Redis 缓存企业列表,缓存 key 为shunqi_ent_search_关键词_条件_页码,缓存有效期 24 小时,空结果 5 分钟;
  • 字段按需获取:通过fields参数指定必要字段,不获取无关数据,减少响应体积与耗时。

2. 数据质量优化

  • 数据一致性校验:对比企业名称与统一社会信用代码,校验数据准确性,过滤异常数据;
  • 字段标准化:将非结构化字段(如行业)解析为标准标签,便于后续数据分析;
  • 关联数据适配:建立企业 ID 与item_get接口的映射表,自动关联企业详情数据。

3. 合规与安全

  • 密钥管理:生产环境将app_keyapp_secret存储在配置中心(如 Nacos、Apollo),禁止硬编码;定期轮换密钥(每 3 个月一次);
  • 重试机制:对 403(频率超限)、504(超时)等错误添加指数退避重试策略,首次重试间隔 1 秒,之后翻倍,最多重试 3 次;
  • 日志审计:记录每次调用的关键词、参数、响应状态、数据更新时间,保留至少 30 天日志,满足合规审计要求。

六、扩展场景:接口联动与功能升级

  1. 联动 item_get 接口:通过item_search获取企业 ID 列表,批量调用item_get获取详情,实现 “搜索 - 详情” 全链路数据采集;
  2. 供应商管理系统:对接企业 ERP 系统,自动提取合作企业 ID,调用item_get获取最新资质与经营状态,实现供应商动态管理;
  3. 行业趋势监控:定时搜索目标关键词,监控企业数量、规模变化,设置阈值触发热门告警。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/22 13:26:28

5分钟学会抖音去水印:小白也能轻松上手的完整指南

5分钟学会抖音去水印:小白也能轻松上手的完整指南 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 想要保存抖音上喜欢的视频却总是被水印困扰&#…

作者头像 李华
网站建设 2026/2/18 7:37:12

Teable仪表盘终极指南:5分钟从数据小白到决策高手

Teable仪表盘终极指南:5分钟从数据小白到决策高手 【免费下载链接】teable 项目地址: https://gitcode.com/GitHub_Trending/te/teable 你是否曾经面对海量数据却无从下手?是否在繁杂的报表中迷失了业务洞察?Teable仪表盘正是你需要的…

作者头像 李华
网站建设 2026/2/5 4:47:35

VMTK血管建模工具包:快速上手的终极完整指南

VMTK血管建模工具包:快速上手的终极完整指南 【免费下载链接】vmtk the Vascular Modeling Toolkit 项目地址: https://gitcode.com/gh_mirrors/vm/vmtk 想要轻松处理医学影像数据,生成精准的血管三维模型吗?VMTK血管建模工具包正是您…

作者头像 李华
网站建设 2026/2/18 9:01:05

LeetDown降级工具实战指南:A6/A7设备进阶降级教程

还在为老款iPhone卡顿而烦恼?LeetDown降级工具为你带来专业解决方案!这款专为macOS设计的图形化降级工具,让复杂的设备降级操作变得简单直观,即使是技术新手也能轻松掌握。🎯 【免费下载链接】LeetDown a GUI macOS Do…

作者头像 李华
网站建设 2026/2/17 2:00:05

魔法画笔:AI绘画风格迁移让你秒变艺术大师

魔法画笔:AI绘画风格迁移让你秒变艺术大师 【免费下载链接】stable-diffusion-webui-forge 项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion-webui-forge 还在羡慕别人能轻松把普通照片变成梵高油画、赛博朋克风格的艺术作品吗&#xf…

作者头像 李华
网站建设 2026/2/19 7:22:09

游戏进度守护神:用Ludusavi打造你的游戏数据保险箱

🎮 数百小时的游戏心血,值得最专业的保护!想象一下,当你历经千辛万苦终于击败最终BOSS,却发现存档因系统故障而消失的绝望。这种游戏数据噩梦,现在有了完美的解决方案——Ludusavi,一个专门为游…

作者头像 李华