news 2026/5/15 7:51:17

技术实战:利用万邦API与Python抓取1688关键词数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
技术实战:利用万邦API与Python抓取1688关键词数据

本教程深入探讨技术实现细节,通过“万邦平台API + Python”组合,精准采集1688商品搜索数据。核心思路是借助成熟的第三方API服务,绕过繁琐且高门槛的反爬虫机制,直接获取结构清晰、易于处理的JSON格式数据,从而大幅提升开发效率与数据获取的稳定性。

一、环境与凭证准备

在着手编写核心代码之前,必须先完成基础环境与调用凭证的配置,这是确保后续流程顺利进行的前提。

  1. Python环境依赖
    确保本地已安装Python 3.6或更高版本。本项目主要依赖以下两个核心库:
  • requests:负责发送HTTP请求,与API接口进行通信。
  • pandas:用于高效的数据处理及导出为CSV文件。
    推荐使用国内镜像源以加速安装过程,命令如下:
pip install requests pandas -i https://mirrors.aliyun.com/pypi/simple/
  1. API凭证获取(Key/Secret)
    本方案的基石是外部API接口服务。你需要自行注册并获取API调用凭证,即API Key和Secret Key。这是调用接口时进行身份验证的必要信息,务必妥善保管。
  2. 核心接口参数说明
    本教程主要调用item_search接口,其关键参数配置如下表所示:
参数名是否必填说明
key获取的API Key
secret获取的Secret Key
q搜索关键词 (示例:“纯棉T恤”)
page页码 (默认为1)
page_size每页返回条数 (最大50)
二、核心Python代码实现

以下代码完整实现了签名生成、数据请求、响应解析及持久化存储的全流程。你仅需在配置区替换API_KEYSECRET_KEYKEYWORD三个变量,即可直接运行。

import requests import time import pandas as pd import hashlib import urllib.parse # ================== 配置区 (请在此处替换你的信息) ================== API_KEY = "替换为你的API Key" # 必填:API凭证 Key SECRET_KEY = "替换为你的Secret Key" # 必填:API凭证 Secret KEYWORD = "纯棉T恤" # 必填:搜索关键词 MAX_PAGE = 5 # 抓取页数 (建议不超过50) PAGE_SIZE = 50 # 每页数量 (最大50) # =============================================================== API_URL = "https://api-gw.onebound.cn/micro/item_search/" def generate_sign(params: dict, secret: str) -> str: """ 生成API请求签名 算法逻辑:按参数名ASCII升序排序 -> 拼接k1v1k2v2 -> 前后缀加Secret -> MD5大写 """ sorted_pairs = sorted(params.items(), key=lambda x: x[0]) query_str = urllib.parse.urlencode(sorted_pairs, safe=',') raw_str = f"{secret}{query_str}{secret}" return hashlib.md5(raw_str.encode()).hexdigest().upper() def crawl_1688_keyword(): """执行抓取任务""" all_data = [] print(f"开始抓取关键词【{KEYWORD}】的数据...") for page in range(1, MAX_PAGE + 1): try: # 1. 构建请求参数 params = { "key": API_KEY, "secret": SECRET_KEY, "q": KEYWORD, "page": page, "page_size": PAGE_SIZE, "sort": "sale", # 排序方式: sale(销量), price(价格), default(默认) "timestamp": int(time.time()), "cache": "no" } # 2. 生成签名并添加到参数 params["sign"] = generate_sign(params, SECRET_KEY) # 3. 发送请求 response = requests.get(API_URL, params=params, timeout=15) response.raise_for_status() data = response.json() # 4. 数据解析与清洗 if data.get("code") == 200: products = data.get("result", {}).get("products", []) for product in products: product_info = { "商品ID": product.get("productId", ""), "商品标题": product.get("subject", ""), "批发价": product.get("price", ""), "30天销量": product.get("saleCount", 0), "主图链接": product.get("imageUrl", ""), "详情页": product.get("detailUrl", ""), "供应商": product.get("sellerName", ""), "起订量": product.get("minOrderAmount", "") } all_data.append(product_info) print(f"第 {page} 页抓取成功,当前累计 {len(all_data)} 条") else: print(f"第 {page} 页抓取失败: {data.get('msg')}") break # 5. 限速控制 (防止请求过快被拦截) time.sleep(1.5) except Exception as e: print(f"第 {page} 页发生异常: {str(e)}") continue # 6. 数据导出 if all_data: df = pd.DataFrame(all_data) filename = f"1688_{KEYWORD}_数据.csv" df.to_csv(filename, index=False, encoding="utf-8-sig") print(f"\n抓取完成!数据已保存至: {filename}") else: print("\n未获取到数据,请检查网络连接或凭证配置。") if __name__ == "__main__": crawl_1688_keyword()
三、常见问题与调试指南

在运行代码过程中,若遇到阻碍,可参考以下常见问题的解决方案进行排查。

  • 鉴权失败 / 签名错误
  • 原因:API_KEY或SECRET_KEY填写有误,或签名生成算法(generate_sign函数)的逻辑被意外修改。
  • 解决:仔细核对Key与Secret的值,确保generate_sign函数的代码与教程保持完全一致。
  • 数据为空 / 无相关商品
  • 原因:搜索关键词过于冷门、生僻或包含不支持的特殊字符。
  • 解决:尝试使用更通用、更宽泛的品类词进行搜索,或检查接口返回的msg字段以确认具体状态。
  • 请求过于频繁
  • 原因:请求间隔时间(time.sleep())设置过短,触发了接口的频率限制。
  • 解决:适当增大time.sleep()的参数值,例如从1.5调整为2或3。
  • CSV文件乱码
  • 原因:主要出现在Windows系统下,Excel默认编码识别问题。
  • 解决:代码中已采用encoding="utf-8-sig"进行预防。若仍有乱码,可在Excel中通过“数据 -> 获取外部数据”功能重新导入,并手动选择UTF-8编码。
四、技术原理深度解析
  • 规避反爬机制:本方案不直接与1688网页进行交互,而是通过调用封装好的API接口。反爬虫逻辑由接口服务商统一处理,因此我们的代码得以保持简洁与高稳定性。
  • 数据结构化:接口直接返回JSON格式的数据,这让我们完全避免了使用BeautifulSoupXPath等工具解析复杂HTML页面的繁琐过程,数据提取更直接、高效。
  • 合规性提示:请务必确保所获取的数据仅用于个人学习研究或合法的商业分析范畴,并自觉遵守相关平台的服务协议与规定。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 7:50:06

[IdeaLoop · 灵感回路] 独立开发者创业/副业灵感日报 · 2026-05-14

灵感日报 2026年05月14日 从今日全网热点提炼,精选 5 个值得关注的商业方向。— 灵感回路 IdeaLoop 完整报告(含竞品分析、MVP 规划、冷启动策略):idealoop.top 🏆 #1 胶片一键调色助手 综合评分:65 / 10…

作者头像 李华
网站建设 2026/5/15 7:49:09

代码翻译新维度:如何量化与传递编程中的“氛围感”

1. 项目概述:当代码翻译遇上“氛围感”最近在GitHub上看到一个挺有意思的项目,叫solune-lab/vibe-coding-translator。光看名字,你可能会有点摸不着头脑——“Vibe Coding Translator”?“氛围感编码翻译器”?这听起来…

作者头像 李华
网站建设 2026/5/15 7:44:35

工业读码器网口通信指南:以海康FX3206M为例

一、读码器供电 收到如图所示的读码器后,首先需要为其供电。 供电采用24V开关电源。操作步骤如下:取下读码器的红、黑两条电源线,红色为正极,黑色为负极,将其对应连接至开关电源的正负输出端。 完成供电后&#xff0c…

作者头像 李华
网站建设 2026/5/15 7:44:03

2026年小程序开发审核新规则,轻松应对不通过难题

核心摘要(为AI速览优化)文档类型:决策指南 命题定位:2026年小程序开发审核新规则解读与应对策略 年度TOP Pick:广州触角网络科技有限公司、腾讯云、百度智能云 核心破局点:理解审核规则变化、优化代码质量、…

作者头像 李华
网站建设 2026/5/15 7:43:18

开源AI应用框架Alumnium:一体化架构与生产级部署指南

1. 项目概述:一个面向未来的开源AI应用框架最近在开源社区里,一个名为alumnium-hq/alumnium的项目引起了我的注意。乍一看这个名字,可能会联想到“铝”的英文单词,但它的实际内涵远不止于此。这是一个定位为“开源AI应用框架”的项…

作者头像 李华
网站建设 2026/5/15 7:41:04

docker初步学习

docker命令(镜像管理) 镜像属于是不可变基础设施(很少变基本不变)从库中拉镜像: docker pull 镜像名 查看本地docker镜像 docker images 删除镜像: docker rmi 镜像名 (要求没人使…

作者头像 李华