Shop::Wildberries::ProductsList - Wildberries 商品列表爬虫工具

爬虫工具概览
使用 Wildberries 商品爬虫工具,您可以从按关键词搜索的结果中,或从特定类别、品牌的商品列表中获取商品数据。通过它,您可以收集商品链接库、监控商品价格动态、评论数量或评分的变化,收集商品图片或关于可用颜色和尺寸的信息。此外,它还会单独收集广告列表,并注明每个广告在自然搜索结果中的位置。该爬虫工具支持设置结果排序并指定提货点。
A-Parser 的功能允许保存数据抓取设置以便日后使用(预设)、设置数据抓取计划等等。您可以使用自动查询扩展、从文件替换子查询、遍历数字字母组合和列表,以获取尽可能多的结果。
采集的数据

- 商品数量
- 商品名称
- 商品链接
- 商品图片
- 品牌
- 价格和原价
- 评分和评论数
- 尺寸和/或颜色
- 对于广告 - 在商品列表中的位置
- 来自“还在找”和“您可能喜欢”的关键词列表
应用场景
- 收集商品链接
- 评估商品受欢迎程度
- 监控价格动态和商品流行度
- 收集商品图片库
- 确定广告位置
查询
可以使用以下内容作为查询:
品牌商品列表链接,例如:
https://www.wildberries.ru/brands/kristiano-fashion
https://www.wildberries.ru/brands/s-a-s
类别中的商品列表链接,例如:
https://www.wildberries.ru/catalog/elektronika/razvlecheniya-i-gadzhety/igrovye-konsoli/playstation
https://www.wildberries.ru/catalog/avtotovary/shiny-i-diski/shiny
关键词,就像您直接在 Wildberries 搜索框中输入一样,例如:
xiaomi mi10
T恤和背心
收音机
查询宏
当使用关键词作为查询时,可以使用内置宏来扩展查询,例如当需要获取比普通搜索结果更多的结果时。
例如,对于上述关键词,在查询格式中指定从 a 到 zzzz 的字符遍历,此方法可以最大程度地轮换搜索结果并获得大量新的唯一结果:
$query {az:a:zzzz}
该宏将为每个原始搜索查询创建 475254 个额外查询,总计将产生 4 x 475254 = 1901016 个搜索查询,这个数字令人印象深刻,但对于 A-Parser 来说完全不是问题。在每分钟 2000 个查询的速度下,这样的任务仅需 16 小时即可处理完毕。
结果输出示例
得益于内置的模板引擎 Template Toolkit,A-Parser 支持灵活的结果格式化,这使其能够以任意形式以及结构化形式(如 CSV 或 JSON)输出结果。
输出品牌、名称和价格
结果格式:
$items.format('$brand, $name, $price\n')
结果示例:
Xiaomi, 智能手机 Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 GB / 256 GB / 5160 mAh, 23751
Realme, 智能手机 realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, 19911
Apple, 智能手机 iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 GB, 54990
Apple, 智能手机 iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB, 69990
Samsung, 智能手机 Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, 19791
带有变量名称的输出
结果格式:
$items.format('品牌: $brand, 名称: $name, 价格: $price\n')
结果示例:
品牌: Samsung, 名称: 智能手机 Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, 价格: 19791
品牌: Realme, 名称: 智能手机 realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, 价格: 19911
品牌: Honor, 名称: 智能手机 Honor 50 / 6.57'' / 2340x1080 / OLED / 6 GB / 128 GB / 4300 mAh, 价格: 31490
品牌: Apple, 名称: 智能手机 iPhone 13 256GB / 6.1'' / 2532x1170 / OLED / 256 GB, 价格: 89990
品牌: Xiaomi, 名称: 智能手机 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh, 价格: 8990
将带有数据抓取日期的结果输出到 CSV 表格
结果格式:
[% USE d = date(format = '%Y %m %d %H:%M', locale = 'C');
FOREACH item IN items;
tools.CSVline(d.format(), item.name, item.price, item.link);
END %]
结果示例:
"2022 01 26 10:15","智能手机 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh",8990,https://www.wildberries.ru/catalog/13615126/detail.aspx
"2022 01 26 10:15","智能手机 iPhone 13 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",74390,https://www.wildberries.ru/catalog/40640907/detail.aspx
"2022 01 26 10:15","智能手机 Galaxy S21 256GB / 6.2'' / Dynamic AMOLED / 8 GB / 256 GB / 4000 mAh",64791,https://www.wildberries.ru/catalog/18592983/detail.aspx
"2022 01 26 10:15","智能手机 Galaxy M22 / 6.4'' / 720x1600 / Super AMOLED / 4 GB / 128 GB / 5000 mAh",17280,https://www.wildberries.ru/catalog/41501725/detail.aspx
将商品名称、价格和折扣百分比输出到 CSV 表格
结果格式:
[% USE Math;
FOREACH item IN items;
discount = item.oldPrice ? (item.oldPrice - item.price) / item.oldPrice * 100 : 0;
tools.CSVline(item.name, item.price, Math.int(discount + 0.5) _ '%');
END %]
结果示例:
"智能手机 Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 GB / 256 GB / 5160 mAh",23751,12%
"智能手机 realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh",19911,17%
"智能手机 iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",69990,0%
"智能手机 Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh",19791,10%
"智能手机 galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 8 GB / 256 GB / 4500 mAh",28691,18%
输出到 CSV 表格
结果格式:
[% FOREACH item IN items;
tools.CSVline(item.link, item.name, item.price, item.oldPrice, item.rating, item.reviews);
END %]
起始文本:
商品链接, 商品名称, 价格, 原价, 评分, 评论数量
结果示例:
商品链接, 商品名称, 价格, 原价, 评分, 评论数量
https://www.wildberries.ru/catalog/54067214/detail.aspx,"女式无檐小便帽",703,1900,5,6
https://www.wildberries.ru/catalog/41415461/detail.aspx,"女式无檐小便帽 / 翻边无檐帽 / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/16782596/detail.aspx,"女式无檐小便帽 / 翻边无檐帽 / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/9468600/detail.aspx,"围巾套装 / 带手套 / 女式无檐小便帽",2700,4500,5,137
https://www.wildberries.ru/catalog/4750212/detail.aspx,"贝雷帽",765,1075,5,349
https://www.wildberries.ru/catalog/9793364/detail.aspx,"贝雷帽围巾套装",3297,4710,5,307
以 SQL 格式保存
结果格式:
[% FOREACH item IN items;
"INSERT INTO products VALUES('" _ item.name _ "', '"; item.link _ "', '"; item.price _ "', '"; item.brand _ "')\n";
END %]
结果示例:
INSERT INTO products VALUES('智能手机 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh', 'https://www.wildberries.ru/catalog/13615125/detail.aspx', '8990', 'Xiaomi')
INSERT INTO products VALUES('智能手机 galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 4 GB / 128 GB / 4500 mAh', 'https://www.wildberries.ru/catalog/23155682/detail.aspx', '24291', 'Samsung')
INSERT INTO products VALUES('智能手机 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh', 'https://www.wildberries.ru/catalog/13615126/detail.aspx', '8990', 'Xiaomi')
将结果转储为 JSON
通用结果格式:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.query = query;
obj.items = [];
FOREACH item IN p1.items;
obj.items.push({
link = item.link
name = item.name
price = item.price
});
END;
obj.json %]
起始文本:
[
结束文本:
]
结果示例:
[
{
"query": "智能手机",
"items": [
{
"link": "https://www.wildberries.ru/catalog/27379808/detail.aspx",
"name": "智能手机 realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh",
"price": 19911
},
{
"link": "https://www.wildberries.ru/catalog/16023994/detail.aspx",
"name": "智能手机 iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 GB",
"price": 54990
},
{
"link": "https://www.wildberries.ru/catalog/15875669/detail.aspx",
"name": "智能手机 iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",
"price": 69990
},
...
]
},
...
]
为了使“Prepend text”和“Append text”选项在任务编辑器中可用,需要激活“More options”。
可能的设置
| 参数 | 默认值 | 描述 |
|---|---|---|
| Pages count | 5 | 抓取的页数 |
| Sort by | Popularity | 结果排序 |
| Address | 提货点地址 | |
| Longitude | 提货点经度 | |
| Latitude | 提货点纬度 |
默认情况下,Wildberries 显示莫斯科的结果。在爬虫工具中,可以指定提货点,结果列表将绑定到特定位置。为此,需要重写 3 个参数:Address、Longitude 和 Latitude。可以在浏览器中获取这些参数所需的值:
1. 选择所需的提货点,预先打开开发者工具(在 Chrome 中按 F12)

2. 在“网络”选项卡中寻找请求 create?version=1 并将数据复制到爬虫工具设置中
选择提货点后,打开 网络 选项卡(在 Chrome 英文版中为 Network)。找到请求 create?version=1,在响应 (Preview) 中将 address、lat 和 lon 分别复制到爬虫工具的 Address、Latitude 和 Longitude 字段中。
