跳转到主要内容

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

img

爬虫工具概览

使用 Wildberries 商品爬虫工具,您可以从按关键词搜索的结果中,或从特定类别、品牌的商品列表中获取商品数据。通过它,您可以收集商品链接库、监控商品价格动态、评论数量或评分的变化,收集商品图片或关于可用颜色和尺寸的信息。此外,它还会单独收集广告列表,并注明每个广告在自然搜索结果中的位置。该爬虫工具支持设置结果排序并指定提货点。

A-Parser 的功能允许保存数据抓取设置以便日后使用(预设)、设置数据抓取计划等等。您可以使用自动查询扩展、从文件替换子查询、遍历数字字母组合和列表,以获取尽可能多的结果。

采集的数据

img

  • 商品数量
  • 商品名称
  • 商品链接
  • 商品图片
  • 品牌
  • 价格和原价
  • 评分和评论数
  • 尺寸和/或颜色
  • 对于广告 - 在商品列表中的位置
  • 来自“还在找”和“您可能喜欢”的关键词列表

应用场景

  • 收集商品链接
  • 评估商品受欢迎程度
  • 监控价格动态和商品流行度
  • 收集商品图片库
  • 确定广告位置

查询

可以使用以下内容作为查询:

品牌商品列表链接,例如:

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

结果格式:

[% 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 count5抓取的页数
Sort byPopularity结果排序
Address提货点地址
Longitude提货点经度
Latitude提货点纬度
备注

默认情况下,Wildberries 显示莫斯科的结果。在爬虫工具中,可以指定提货点,结果列表将绑定到特定位置。为此,需要重写 3 个参数:AddressLongitudeLatitude。可以在浏览器中获取这些参数所需的值:

1. 选择所需的提货点,预先打开开发者工具(在 Chrome 中按 F12)

img

2. 在“网络”选项卡中寻找请求 create?version=1 并将数据复制到爬虫工具设置中

选择提货点后,打开 网络 选项卡(在 Chrome 英文版中为 Network)。找到请求 create?version=1,在响应 (Preview) 中将 addresslatlon 分别复制到爬虫工具的 AddressLatitudeLongitude 字段中。

img