前言
在做亚马逊数据采集时,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个核心要点:
- 价格用美分:$50 = 5000
- 空格要编码:用 + 或 %20
- 分段突破限制:价格分段解决20页限制
掌握这些,你的数据采集效率能提升100倍!💪
觉得有用请点赞👍 收藏⭐️ 关注我
有问题欢迎评论区交流!
#前端 #Python #数据采集 #亚马逊 #爬虫技术