README.md
8.61 KB
电商数据爬虫工具集
通过万邦API爬取电商平台(Shopee、Amazon)商品数据的工具集。
目录
Shopee爬虫
通过万邦API爬取Shopee商品数据的简化脚本。
文件说明
data_crawling/
├── shopee_crawler.py # 主爬虫脚本
├── test_crawler.py # 测试脚本(爬取前5个)
├── queries.txt # 查询词列表(5024个)
├── 万邦API_shopee.md # API文档
├── shopee_results/ # 爬取结果目录
└── test_results/ # 测试结果目录
快速开始
1. 安装依赖
pip install requests
2. 测试运行(推荐先测试)
cd /home/tw/SearchEngine/data_crawling
python test_crawler.py
这会爬取前5个查询词,结果保存在 test_results/ 目录。
3. 完整运行
python shopee_crawler.py
爬取全部5024个查询词,结果保存在 shopee_results/ 目录。
配置参数
在脚本顶部可以修改:
COUNTRY = '.com.my' # 站点: .vn, .co.th, .tw, .co.id, .sg, .com.my
PAGE = 1 # 页码
DELAY = 2 # 请求间隔(秒)
MAX_RETRIES = 3 # 最大重试次数
输出结果
文件命名
0001_Bohemian_Maxi_Dress_20231204_143025.json
0002_Vintage_Denim_Jacket_20231204_143028.json
...
JSON格式
{
"items": {
"keyword": "dress",
"total_results": 5000,
"item": [
{
"title": "商品标题",
"pic_url": "图片URL",
"price": 38.9,
"sales": 293,
"shop_id": "277113808",
"detail_url": "商品链接"
}
]
},
"error_code": "0000",
"reason": "ok"
}
摘要文件
summary.json 包含爬取统计:
{
"crawl_time": "2023-12-04T14:30:25",
"total": 5024,
"success": 5000,
"fail": 24,
"elapsed_seconds": 10248,
"failed_queries": ["query1", "query2"]
}
预估时间
- 单个查询: ~4秒(含2秒延迟)
- 全部5024个: ~5.6小时
API信息
- 地址:
https://api-gw.onebound.cn/shopee/item_search - Key:
t8618339029 - Secret:
9029f568 - 每日限额: 10,000次
常用命令
# 测试(前5个)
python test_crawler.py
# 完整爬取
python shopee_crawler.py
# 查看结果数量
ls shopee_results/*.json | wc -l
# 查看失败的查询
cat shopee_results/failed_queries.txt
# 查看摘要
cat shopee_results/summary.json
注意事项
- API限额: 每日最多10,000次调用
- 请求间隔: 建议保持2秒以上
- 网络稳定: 需要稳定的网络连接
- 存储空间: 确保有足够的磁盘空间(约2-3GB)
故障排除
问题: API返回错误
- 检查网络连接
- 确认API配额未用完
- 查看
failed_queries.txt
问题: 文件编码错误
- 脚本已使用UTF-8编码,无需额外设置
问题: 中断后继续
- 可以删除已爬取的JSON文件对应的查询词,重新运行
Amazon爬虫
通过万邦API爬取Amazon商品数据的脚本。
快速开始
1. 配置API密钥
方法1:使用配置文件(推荐)
cd /home/tw/SearchEngine/data_crawling
cp config.example.py config.py
# 编辑 config.py,填入你的API密钥
方法2:使用命令行参数
python amazon_crawler_v2.py --key YOUR_KEY --secret YOUR_SECRET
方法3:使用环境变量
export ONEBOUND_API_KEY="your_key_here"
export ONEBOUND_API_SECRET="your_secret_here"
2. 测试API连接
python test_api.py
这会测试API连接是否正常,并显示配额信息。
3. 开始爬取
测试模式(前10个查询)
python amazon_crawler_v2.py --max 10
完整爬取(全部5024个查询)
python amazon_crawler_v2.py
脚本说明
amazon_crawler.py
基础版爬虫,需要在代码中配置API密钥。
amazon_crawler_v2.py(推荐)
增强版爬虫,支持:
- 配置文件/命令行参数/环境变量
- 详细的日志输出
- 进度显示
- 统计信息
- 断点续爬
test_api.py
API连接测试工具,用于验证:
- API密钥是否正确
- 网络连接是否正常
- API配额是否充足
analyze_results.py
结果分析工具,用于:
- 统计爬取结果
- 分析商品数据(价格、评分等)
- 导出CSV格式
命令行参数
python amazon_crawler_v2.py [选项]
选项:
--key KEY API Key
--secret SECRET API Secret
--queries FILE 查询文件路径(默认:queries.txt)
--delay SECONDS 请求间隔(默认:2.0秒)
--start INDEX 起始索引,用于断点续爬(默认:0)
--max NUM 最大爬取数量(默认:全部)
--output DIR 结果保存目录(默认:amazon_results)
使用示例
测试前10个查询
python amazon_crawler_v2.py --max 10
从第100个查询继续爬取
python amazon_crawler_v2.py --start 100
使用自定义延迟
python amazon_crawler_v2.py --delay 1.5
分析爬取结果
# 显示统计信息
python analyze_results.py
# 导出为CSV
python analyze_results.py --csv
# 指定结果目录
python analyze_results.py --dir amazon_results
输出结果
文件命名
0001_Bohemian_Maxi_Dress.json
0002_Vintage_Denim_Jacket.json
0003_Minimalist_Linen_Trousers.json
...
JSON格式
{
"items": {
"item": [
{
"detail_url": "https://www.amazon.com/...",
"num_iid": "B07F8S18D5",
"pic_url": "https://...",
"price": "9.99",
"reviews": "53812",
"sales": 10000,
"stars": "4.7",
"title": "商品标题"
}
],
"page": "1",
"page_size": 100,
"real_total_results": 700,
"q": "搜索词"
},
"error_code": "0000",
"reason": "ok"
}
日志文件
运行日志保存在 amazon_crawler.log:
2025-01-07 10:00:00 - INFO - Amazon爬虫启动
2025-01-07 10:00:01 - INFO - [1/5024] (0.0%) - Bohemian Maxi Dress
2025-01-07 10:00:02 - INFO - ✓ 成功: Bohemian Maxi Dress - 获得 700 个结果
...
分析报告
运行分析工具后生成 analysis_report.json:
{
"total_files": 5024,
"successful": 5000,
"failed": 24,
"success_rate": "99.5%",
"total_items": 50000,
"avg_items_per_query": 10.0
}
预估时间
- 单个查询: ~4秒(含2秒延迟)
- 全部5024个: ~5.6小时
注意事项
- API限额: 请注意API的每日/每月配额限制
- 请求间隔: 建议保持2秒以上的延迟
- 断点续爬: 使用
--start参数可以从指定位置继续 - 磁盘空间: 确保有足够的存储空间(约2-3GB)
详细文档
更多详细信息,请查看:
通用说明
文件结构
data_crawling/
├── shopee_crawler.py # Shopee爬虫
├── test_crawler.py # Shopee测试脚本
├── amazon_crawler.py # Amazon爬虫(基础版)
├── amazon_crawler_v2.py # Amazon爬虫(增强版)
├── test_api.py # API测试工具
├── analyze_results.py # 结果分析工具
├── config.example.py # 配置文件示例
├── queries.txt # 查询词列表(5024个)
├── 万邦API_shopee.md # Shopee API文档
├── 万邦API_亚马逊.md # Amazon API文档
├── AMAZON_CRAWLER_README.md # Amazon爬虫详细文档
├── shopee_results/ # Shopee结果目录
├── amazon_results/ # Amazon结果目录
└── test_results/ # 测试结果目录
依赖安装
pip install requests
常见问题
1. API密钥错误
错误: 错误: 未配置API密钥!
解决:
- 检查配置文件是否正确
- 使用
test_api.py测试连接 - 确认密钥没有多余的空格或引号
2. 请求超时
错误: 请求失败: timeout
解决:
- 检查网络连接
- 尝试增加延迟时间
- 检查API服务是否正常
3. API配额耗尽
错误: quota exceeded
解决:
- 查看日志中的
api_info字段 - 等待配额重置
- 使用
--max参数限制爬取数量
4. 中断后继续爬取
使用 --start 参数指定起始位置:
# 从第1000个查询继续
python amazon_crawler_v2.py --start 1000
许可证
本项目仅供学习和研究使用。使用API时请遵守相应平台的服务条款。