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

简介: 顺企网item_search接口支持多维度检索企业信息,返回分页基础数据,适用于供应商筛选、市场调研等场景。需HTTPS+HMAC-SHA256认证,权限分级管理。本指南涵盖权限获取、签名生成、Python对接、调试排错及生产优化,提供全链路实操指导,确保合规稳定调用。(239字)

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

  1. 接口定位与核心价值
    核心功能:输入关键词(如 “江西新余 废旧物资回收”),搭配行业、地区、经营状态等筛选条件,返回分页企业列表;支持按成立时间、注册资本、信用评级排序,单页最多返回 50 条,适配批量数据采集与实时查询。
    行业特性
    强行业属性:筛选维度含行业大类 / 子类、经营资质,支持按再生资源回收、环保工程等专业领域筛选;
    数据权威度高:企业信息来自工商登记、官方备案,更新周期为 24 小时;
    资质强关联:无有效资质企业不返回敏感数据,保障数据合规性;
    风控严格:单 IP 调用频率超限会触发临时封禁,需控制请求间隔。
    典型场景
    供应商筛选系统:按行业 + 地区批量筛选企业,对比资质与信用;
    市场调研分析:统计特定行业企业分布、规模、经营状况;
    行业数据统计:抓取区域企业数据,生成行业趋势报告;
    风控系统:按经营状态筛选异常企业,预警合作风险。
  2. 核心参数与返回字段
    (1)请求参数(公共参数 + 私有参数,POST 提交)
    参数类型 参数名称 类型 是否必填 说明 应用示例
    公共参数 app_key string 是 开放平台应用 ID shunqi_20260101
    timestamp long 是 毫秒级时间戳 1735689600000
    sign string 是 HMAC‑SHA256 签名 32 位小写哈希串
    version string 是 接口版本 v3
    method string 是 接口方法名 shunqi.ent.search
    私有参数 q string 是 搜索关键词 江西新余 废旧物资回收
    industry string 否 行业大类 再生资源回收
    sub_industry string 否 行业子类 废金属回收
    region string 否 地区(省 / 市 / 区) 江西新余
    reg_status string 否 经营状态 存续/经营异常/注销
    credit_rating string 否 信用评级 AAA/AA/A/B/C
    sort string 否 排序方式 establish_date_desc/reg_capital_desc/credit_rating_desc
    page_no int 否 页码,默认 1 1
    page_size int 否 单页条数,默认 20,最大 50 50
    注意事项
    关键词支持空格分隔多条件(如 “废旧物资回收 江西新余”),接口自动分词匹配;
    region 未传入时返回全国企业,传入后返回指定区域企业;
    时间戳有效期 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 次 / IP 2 次 / 秒 功能调试、个人研究
    企业基础 5000 次 / IP 10 次 / 秒 中小型企业供应商筛选、市场调研
    企业高级 50000 次 / IP 50 次 / 秒 大型征信平台、风控系统、行业数据统计
    数据缓存:企业列表缓存 24 小时,信用评级缓存 12 小时,高频查询建议本地缓存;
    内容限制:未公示企业、注销企业不返回敏感数据;
    合规要求:数据仅用于合规企业征信、供应商筛选、市场调研等业务,遵守《企业信息公示暂行条例》《个人信息保护法》等法规。
    二、对接前准备:权限与环境搭建
  4. 获取接口权限(官方唯一合规路径)
    顺企网 item_search 接口由顺企网开放平台提供,无通用公共接口,接入步骤如下:
    登录顺企网开放平台(https://open.shunqi.com),注册企业账号;
    提交资质审核:企业营业执照、法人身份证、应用用途说明等材料;
    创建应用,填写应用名称、用途、服务器 IP,提交审核;
    审核通过后获取 app_key 和 app_secret,配置 IP 白名单;
    申请 item_search 权限,根据业务需求选择权限等级(基础 / 进阶 / 高级)。
    风险提示:严禁使用非合规爬虫或第三方接口,违反平台协议与法规可能导致账号封禁、法律追责。
  5. 技术环境准备
    (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 签名机制,流程如下:
    收集所有请求参数(公共参数 + 私有参数),排除 sign 字段;
    按参数名 ASCII 码升序排序;
    拼接成 key1=value1&key2=value2&... 的字符串(参数值需 UTF-8 编码);
    末尾拼接 &app_secret=你的app_secret;
    使用 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

日志配置

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": {}}

调用示例

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. 优先用官方工具调试(排除签名问题)
    登录顺企网开放平台调试工具,选择 shunqi.ent.search 接口;
    输入关键词、行业、地区等参数,工具自动生成签名;
    发送请求,查看响应结果。若官方工具调用成功,说明代码签名逻辑有误;若失败,检查权限或参数。
  2. 高频问题排查表
    问题现象 常见原因 解决方案
    签名验证失败(401) 1. app_key/app_secret 错误;
  3. 参数排序错误;
  4. 时间戳过期;
  5. 参数值未 UTF-8 编码 1. 核对平台应用信息;
  6. 严格按参数名 ASCII 升序排序;
  7. 校准本地时间,确保时间戳在 5 分钟内;
  8. 对中文参数值进行 UTF-8 编码
    权限不足(403) 1. 未申请 item_search 接口权限;
  9. IP 不在白名单;
  10. 企业资质未审核通过 1. 在开放平台申请对应权限;
  11. 添加服务器 IP 到白名单;
  12. 补充资质材料,完成审核
    参数错误(400) 1. 关键词为空;
  13. page_size>50;
  14. industry/reg_status 取值错误 1. 确保 q 参数非空;
  15. page_size≤50;
  16. 核对行业 / 经营状态枚举值
    无企业数据返回 1. 关键词无匹配;
  17. 筛选过严;
  18. 企业无资质 / 已注销 1. 简化关键词;
  19. 放宽筛选条件;
  20. 更换有效关键词
    响应超时(504) 1. 网络波动;
  21. 网关拥堵;
  22. 单页条数过多 1. 添加重试机制;
  23. 避开高峰期;
  24. 减小 page_size
    五、进阶优化:生产级稳定性提升
  25. 性能与配额优化
    批量翻页优化:通过 has_more 判断翻页,避免无效请求;多关键词用异步并发(aiohttp),控制并发数≤权限允许的频率上限(如企业基础权限 10 次 / 秒);
    智能缓存策略:用 Redis 缓存企业列表,缓存 key 为 shunqi_entsearch关键词条件页码,缓存有效期 24 小时,空结果 5 分钟;
    字段按需获取:通过 fields 参数指定必要字段,不获取无关数据,减少响应体积与耗时。
  26. 数据质量优化
    数据一致性校验:对比企业名称与统一社会信用代码,校验数据准确性,过滤异常数据;
    字段标准化:将非结构化字段(如行业)解析为标准标签,便于后续数据分析;
    关联数据适配:建立企业 ID 与 item_get 接口的映射表,自动关联企业详情数据。
  27. 合规与安全
    密钥管理:生产环境将 app_key 和 app_secret 存储在配置中心(如 Nacos、Apollo),禁止硬编码;定期轮换密钥(每 3 个月一次);
    重试机制:对 403(频率超限)、504(超时)等错误添加指数退避重试策略,首次重试间隔 1 秒,之后翻倍,最多重试 3 次;
    日志审计:记录每次调用的关键词、参数、响应状态、数据更新时间,保留至少 30 天日志,满足合规审计要求。
    六、扩展场景:接口联动与功能升级
    联动 item_get 接口:通过 item_search 获取企业 ID 列表,批量调用 item_get 获取详情,实现 “搜索 - 详情” 全链路数据采集;
    供应商管理系统:对接企业 ERP 系统,自动提取合作企业 ID,调用 item_get 获取最新资质与经营状态,实现供应商动态管理;
    行业趋势监控:定时搜索目标关键词,监控企业数量、规模变化,设置阈值触发热门告警。
相关文章
|
18天前
|
存储 人工智能 运维
阿里云 Tair 基于 3FS 工程化落地 KVCache:企业级部署、高可用运维与性能调优实践
阿里云 Tair KVCache 团队联合硬件团队对 3FS 进行深度优化,通过 RDMA 流量均衡、小 I/O 调优及全用户态落盘引擎,提升 4K 随机读 IOPS 150%;增强 GDR 零拷贝、多租户隔离与云原生运维能力,构建高性能、高可用、易管理的 KVCache 存储底座,助力 AI 大模型推理降本增效。
|
2月前
|
存储 缓存 人工智能
腾讯新闻 item_search - 热榜数据接口对接全攻略:从入门到精通
腾讯新闻item_search热榜接口是获取其全领域(时政、科技、财经等)实时热点数据的核心工具,支持多维度筛选与分页查询,可高效获取标题、热度指数、传播数据及关联话题,广泛应用于舆情监测、资讯聚合与热点分析,助力开发者精准掌握平台热点动态。
|
4月前
|
存储 人工智能 运维
AI 网关代理 RAG 检索:Dify 轻松对接外部知识库的新实践
Higress AI 网关通过提供关键桥梁作用,支持 Dify 应用便捷对接业界成熟的 RAG 引擎。通过 AI 网关将 Dify 的高效编排能力与专业 RAG 引擎的检索效能结合,企业可在保留现有 Dify 应用资产的同时,有效规避其内置 RAG 的局限,显著提升知识驱动型 AI 应用的生产环境表现。
2535 108
|
3月前
|
JSON 缓存 数据格式
阿里巴巴 item_search 接口对接全攻略:从入门到精通
本文详解阿里巴巴1688商品搜索接口(item_search)的对接流程、参数配置与Python实现,涵盖认证签名、分页查询、错误处理及最佳实践,助力开发者高效构建采购系统与市场分析工具。
|
4月前
|
缓存 供应链 监控
1688item_search_factory - 按关键字搜索工厂数据接口深度分析及 Python 实现
item_search_factory接口专为B2B电商供应链优化设计,支持通过关键词精准检索工厂信息,涵盖资质、产能、地理位置等核心数据,助力企业高效开发货源、分析产业集群与评估供应商。
|
4月前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。
|
1月前
|
数据采集 缓存 人工智能
微信 item_search - 关键词取文章列表接口对接全攻略:从入门到精通
本攻略详解基于搜狗微信搜索合规接口的item_search调用方法,涵盖接口认知、密钥获取、参数配置、签名生成、批量采集、异常处理及性能优化,结合Python实操示例,助力开发者高效实现微信文章列表的数据获取与舆情监测、内容聚合等应用,兼顾合规性与生产稳定性。

热门文章

最新文章