# 🚀 亚马逊URL参数拼接实战:数据采集效率提升指南

前言

在做亚马逊数据采集时,URL参数拼接是绕不开的基础技能。本文将通过实战案例,教你如何正确构建亚马逊URL,避免常见错误,提升采集效率。我们直入正题:

什么是URL参数拼接?

简单来说,就是根据亚马逊的规则,用代码动态生成页面链接。

传统方式 :打开亚马逊 → 输入关键词 → 设置筛选 → 手动翻页
URL拼接:一行代码生成目标URL → 直接获取数据

效率对比

  • 采集100个关键词×10个价格区间 = 1000次操作
  • 用URL拼接:1个循环搞定 ⚡

亚马逊URL参数官方规则汇总

完整参数列表,建议收藏备查 📌

参数名称 参数类型 作用说明 示例值
k 搜索控制 搜索关键词,支持多词组合 wireless+headphones
i 搜索控制 类目ID,限定搜索范围 electronics, aps(全站)
rh 筛选条件 复合筛选(品牌、评分等) p_72:1249150011(4星以上)
low-price 筛选条件 最低价格(多数类目用美分) 5000(=$50.00)
high-price 筛选条件 最高价格(多数类目用美分) 20000(=$200.00)
s 排序方式 结果排序规则 price-asc-rank(价格升序)
page 分页控制 页码(通常最多20页) 1, 2, 3...20
ref 追踪标识 来源追踪,模拟真实用户 sr_pg_1, nb_sb_noss
qid 追踪标识 查询时间戳 1702284567
node 类目导航 类目节点ID,用于榜单 172282(Electronics)
field-keywords 搜索控制 关键词(旧版参数) laptop
bbn 类目导航 Browse Bin Number 172282
ie 编码设置 字符编码 UTF8
tag 联盟标识 Amazon Associates ID youraffid-20

⚠️ 重点提示

  • 💰 价格参数用美分!$50要写成5000
  • 🔤 空格用 +%20 编码
  • 📄 亚马逊最多翻20页,需要价格分段突破
  • 🌍 不同站点(.com、.co.uk、.co.jp)类目ID可能不同

实战案例

案例1:基础搜索

javascript 复制代码
// 需求:搜索"wireless headphones"在Electronics类目
const baseURL = 'https://www.amazon.com/s';
const params = {
  k: 'wireless headphones',
  i: 'electronics',
  ref: 'nb_sb_noss'
};

const url = `${baseURL}?${new URLSearchParams(params)}`;
console.log(url);
// https://www.amazon.com/s?k=wireless+headphones&i=electronics&ref=nb_sb_noss

案例2:价格筛选

python 复制代码
# 需求:$50-$200的蓝牙音箱,按价格升序
from urllib.parse import urlencode

params = {
    'k': 'bluetooth speaker',
    'i': 'electronics',
    'low-price': 5000,    # $50 转为美分
    'high-price': 20000,  # $200 转为美分
    's': 'price-asc-rank'
}

url = f"https://www.amazon.com/s?{urlencode(params)}"
print(url)

案例3:多页采集

python 复制代码
# 需求:采集"laptop"的前5页
base_url = "https://www.amazon.com/s"

for page in range(1, 6):
    url = f"{base_url}?k=laptop&page={page}&ref=sr_pg_{page}"
    print(f"第{page}页: {url}")
    # 发送给API采集

案例4:复杂筛选

python 复制代码
# 需求:4星以上 + Prime + $100-$500的笔记本
params = {
    'k': 'laptop',
    'i': 'computers',
    'rh': 'p_72:1249150011,p_85:2470955011',  # 4星+Prime
    'low-price': 10000,
    'high-price': 50000
}

url = f"https://www.amazon.com/s?{urlencode(params)}"

rh参数解析

  • p_72:1249150011 = 4星及以上
  • p_85:2470955011 = Prime商品
  • 多个条件用逗号连接

Python工具类

python 复制代码
from urllib.parse import urlencode

class AmazonURLBuilder:
    def __init__(self, marketplace='us'):
        self.base_urls = {
            'us': 'https://www.amazon.com',
            'uk': 'https://www.amazon.co.uk'
        }
        self.base_url = self.base_urls[marketplace]
    
    def build_search_url(self, keyword, **kwargs):
        """构建搜索URL"""
        params = {'k': keyword}
        
        # 类目
        if 'category' in kwargs:
            params['i'] = kwargs['category']
        
        # 价格(转美分)
        if 'min_price' in kwargs:
            params['low-price'] = int(kwargs['min_price'] * 100)
        if 'max_price' in kwargs:
            params['high-price'] = int(kwargs['max_price'] * 100)
        
        # 排序和分页
        params['s'] = kwargs.get('sort', 'relevanceblender')
        params['page'] = kwargs.get('page', 1)
        params['ref'] = f"sr_pg_{params['page']}"
        
        return f"{self.base_url}/s?{urlencode(params)}"

# 使用
builder = AmazonURLBuilder()
url = builder.build_search_url(
    'wireless headphones',
    category='electronics',
    min_price=50,
    max_price=200,
    sort='price-asc-rank'
)

常见错误

❌ 错误1:价格单位搞错

python 复制代码
# 错误
params = {'low-price': 50, 'high-price': 200}  # 会被理解为$0.50-$2.00

# 正确
params = {'low-price': 5000, 'high-price': 20000}  # $50-$200

❌ 错误2:空格未编码

python 复制代码
# 错误
url = "https://www.amazon.com/s?k=wireless headphones"  # 会报错

# 正确
url = "https://www.amazon.com/s?k=wireless+headphones"
# 或
from urllib.parse import quote_plus
url = f"https://www.amazon.com/s?k={quote_plus('wireless headphones')}"

❌ 错误3:参数顺序混乱

虽然理论上参数顺序不影响结果,但建议按照:

csharp 复制代码
k → i → 筛选参数 → 排序 → 分页 → ref

突破20页限制

亚马逊搜索最多显示20页,怎么办?

方法:价格分段

python 复制代码
price_ranges = [(0, 50), (50, 100), (100, 200), (200, 500)]

for min_p, max_p in price_ranges:
    for page in range(1, 21):  # 每个价格段20页
        url = builder.build_search_url(
            'laptop',
            min_price=min_p,
            max_price=max_p,
            page=page
        )
        # 采集数据

通过价格分段,可以突破20页限制,覆盖更多商品!

与Pangolin API集成

python 复制代码
import requests

# 构建URL
url = builder.build_search_url('wireless mouse', min_price=10, max_price=50)

# 调用Pangolin API
response = requests.post('https://api.pangolinfo.com/scrape', json={
    'api_key': 'your_key',
    'url': url,
    'type': 'search',
    'format': 'json'
})

data = response.json()
print(f"找到 {len(data.get('products', []))} 个商品")

Pangolin优势

  • ✅ 98%广告位采集率
  • ✅ 自动处理反爬
  • ✅ 返回结构化数据
  • ✅ 支持邮区、价格等复杂筛选

工具推荐

技术团队:Pangolin Scrape API

  • 自动处理URL参数
  • 高质量数据返回
  • 按需付费

运营人员:AMZ Data Tracker

  • 零代码配置
  • 可视化界面
  • 定时采集

总结

URL参数拼接的3个核心要点:

  1. 价格用美分:$50 = 5000
  2. 空格要编码:用 + 或 %20
  3. 分段突破限制:价格分段解决20页限制

掌握这些,你的数据采集效率能提升100倍!💪


觉得有用请点赞👍 收藏⭐️ 关注我

有问题欢迎评论区交流!

#前端 #Python #数据采集 #亚马逊 #爬虫技术

相关推荐
岁月宁静2 小时前
FastAPI 入门指南
人工智能·后端·python
AI小云2 小时前
【数据操作与可视化】Serborn绘图-类别散点图和热力图
python·数据可视化
码界奇点2 小时前
基于Python与Django的白泽自动化运维系统设计与实现
运维·python·django·毕业设计·源代码管理
semantist@语校2 小时前
第五十五篇|从解释约束到结构化认知:京都国际学院的语言学校Prompt工程化实践
大数据·数据库·人工智能·python·百度·prompt·知识图谱
我送炭你添花2 小时前
Pelco KBD300A 模拟器:05.校验算法终极对比 + 完整 100+ 指令封装 + KBD300A 所有隐藏功能函数化
python·算法·自动化·运维开发
八年。。2 小时前
simulink与python联合仿真(一)安装MATLAB引擎
开发语言·python
计算机毕业编程指导师3 小时前
【Python大数据选题】基于Spark+Django的电影评分人气数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·django·电影评分人气
Python极客之家3 小时前
基于Django的高校二手市场与社交系统
后端·python·数据挖掘·django·毕业设计
shenzhenNBA3 小时前
python用openpyxl操作excel-合并格式相同的excel文件
python·excel·openpyxl·excel合并