Przejdź do treści głównej

Shop::Wildberries::ProductsList - scraper listy produktów Wildberries

img

Przegląd scrapera

Używając scrapera produktów Wildberries, możesz pobierać dane o produktach z wyników wyszukiwania według słowa kluczowego lub z listy produktów konkretnej kategorii lub marki. Za jego pomocą można zebrać bazę linków do produktów, śledzić dynamikę cen produktów, zmiany liczby opinii lub oceny, zbierać zdjęcia produktów lub informacje o dostępnych kolorach i rozmiarach. Osobno zbierana jest również lista ogłoszeń reklamowych ze wskazaniem pozycji każdego z nich w wynikach organicznych. Scraper daje możliwość ustawienia sortowania wyników oraz wskazania punktu odbioru.

Funkcjonalność A-Parser pozwala zapisywać ustawienia scrapowania do późniejszego wykorzystania (presety), ustawiać harmonogram scrapowania i wiele więcej. Możesz korzystać z automatycznego powielania zapytań, podstawiania podzapytań z plików, generowania kombinacji alfanumerycznych i list w celu uzyskania maksymalnej możliwej liczby wyników.

Zbierane dane

img

  • Liczba produktów
  • Nazwa produktu
  • Link do produktu
  • Zdjęcie produktu
  • Marka
  • Cena i stara cena
  • Ocena i liczba opinii
  • Rozmiary i/lub kolory
  • Dla ogłoszeń reklamowych - pozycja na liście produktów
  • Lista fraz z "Inni szukali również" i "Może Ci się spodobać"

Warianty użycia

  • Zbieranie linków do produktów
  • Ocena popularności produktów
  • Śledzenie dynamiki cen i popularności produktów
  • Zbieranie bazy zdjęć produktów
  • Określanie pozycji ogłoszeń reklamowych

Zapytania

Jako zapytania można wykorzystać:

Linki do listy produktów marki, na przykład:

https://www.wildberries.ru/brands/kristiano-fashion
https://www.wildberries.ru/brands/s-a-s

Linki do listy produktów w kategorii, na przykład:

https://www.wildberries.ru/catalog/elektronika/razvlecheniya-i-gadzhety/igrovye-konsoli/playstation
https://www.wildberries.ru/catalog/avtotovary/shiny-i-diski/shiny

Słowa kluczowe, dokładnie tak samo, jak gdybyś wpisywał je bezpośrednio w wyszukiwarkę Wildberries, na przykład:

xiaomi mi10
t-shirty i koszulki
radioodtwarzacz

Podstawienia zapytań

Przy używaniu słów kluczowych jako zapytań można wykorzystać wbudowane makra do powielania zapytań, na przykład jeśli wymagane jest uzyskanie większej liczby wyników niż oferują zwykłe wyniki wyszukiwania.

Na przykład, dla wyżej wymienionych słów kluczowych w formacie zapytania wskażemy generowanie znaków od a do zzzz, ta metoda pozwala maksymalnie rotować wyniki wyszukiwania i uzyskiwać mnóstwo nowych unikalnych wyników:

$query {az:a:zzzz}

To makro utworzy 475254 dodatkowych zapytań dla każdego początkowego zapytania, co w sumie da 4 x 475254 = 1901016 zapytań, liczba imponująca, ale nie stanowi to żadnego problemu dla A-Parsera. Przy prędkości 2000 zapytań na minutę takie zadanie zostanie przetworzone w zaledwie 16 godzin.

Warianty wyświetlania wyników

A-Parser obsługuje elastyczne formatowanie wyników dzięki wbudowanemu silnikowi szablonów Template Toolkit, co pozwala mu wyświetlać wyniki w dowolnej formie, a także w formie strukturalnej, np. CSV lub JSON

Wyświetlanie marki, nazwy i ceny

Format wyniku:

$items.format('$brand, $name, $price\n')

Przykład wyniku:

Xiaomi, Smartfon Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 GB / 256 GB / 5160 mAh, 23751
Realme, Smartfon realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, 19911
Apple, Smartfon iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 GB, 54990
Apple, Smartfon iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB, 69990
Samsung, Smartfon Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, 19791

Wyświetlanie z nazwami zmiennych

Format wyniku:

$items.format('Marka: $brand, Nazwa: $name, Cena: $price\n')

Przykład wyniku:

Marka: Samsung, Nazwa: Smartfon Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh, Cena: 19791
Marka: Realme, Nazwa: Smartfon realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh, Cena: 19911
Marka: Honor, Nazwa: Smartfon Honor 50 / 6.57'' / 2340x1080 / OLED / 6 GB / 128 GB / 4300 mAh, Cena: 31490
Marka: Apple, Nazwa: Smartfon iPhone 13 256GB / 6.1'' / 2532x1170 / OLED / 256 GB, Cena: 89990
Marka: Xiaomi, Nazwa: Smartfon 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh, Cena: 8990

Format wyniku:

[% 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 %]

Przykład wyniku:

"2022 01 26 10:15","Smartfon 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh",8990,https://www.wildberries.ru/catalog/13615126/detail.aspx
"2022 01 26 10:15","Smartfon iPhone 13 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",74390,https://www.wildberries.ru/catalog/40640907/detail.aspx
"2022 01 26 10:15","Smartfon 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","Smartfon Galaxy M22 / 6.4'' / 720x1600 / Super AMOLED / 4 GB / 128 GB / 5000 mAh",17280,https://www.wildberries.ru/catalog/41501725/detail.aspx

Wyświetlanie nazwy, ceny i procentu rabatu na produkt w tabeli CSV

Format wyniku:

[% 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 %]

Przykład wyniku:

"Smartfon Poco X3 Pro / 6.67'' / 2400x1080 / IPS / 8 GB / 256 GB / 5160 mAh",23751,12%
"Smartfon realme 8 / 6.4'' / 2400x1080 / Super AMOLED / 6 GB / 128 GB / 5000 mAh",19911,17%
"Smartfon iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",69990,0%
"Smartfon Galaxy A32 / 6.4'' / 2400x1080 / Super AMOLED / 4 GB / 128 GB / 5000 mAh",19791,10%
"Smartfon galaxy a52 / 6.5'' / 1080x2400 / Super AMOLED / 8 GB / 256 GB / 4500 mAh",28691,18%

Wyświetlanie w tabeli CSV

Format wyniku:

[% FOREACH item IN items; 
tools.CSVline(item.link, item.name, item.price, item.oldPrice, item.rating, item.reviews);
END %]

Tekst początkowy:

Link do produktu, Nazwa produktu, Cena, Stara cena, Ocena, Liczba opinii

Przykład wyniku:

Link do produktu, Nazwa produktu, Cena, Stara cena, Ocena, Liczba opinii
https://www.wildberries.ru/catalog/54067214/detail.aspx,"Czapka beanie damska",703,1900,5,6
https://www.wildberries.ru/catalog/41415461/detail.aspx,"Czapka beanie damska / beanie z wywinięciem / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/16782596/detail.aspx,"Czapka beanie damska / beanie z wywinięciem / Beanie",1487,1750,5,346
https://www.wildberries.ru/catalog/9468600/detail.aspx,"Czapka z szalikiem / z rękawiczkami / beanie damska",2700,4500,5,137
https://www.wildberries.ru/catalog/4750212/detail.aspx,"Beret",765,1075,5,349
https://www.wildberries.ru/catalog/9793364/detail.aspx,"Beret z szalikiem",3297,4710,5,307

Zapisywanie w formacie SQL

Format wyniku:

[% FOREACH item IN items;
"INSERT INTO products VALUES('" _ item.name _ "', '"; item.link _ "', '"; item.price _ "', '"; item.brand _ "')\n";
END %]

Przykład wyniku:

INSERT INTO products VALUES('Smartfon 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh', 'https://www.wildberries.ru/catalog/13615125/detail.aspx', '8990', 'Xiaomi')
INSERT INTO products VALUES('Smartfon 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('Smartfon 6.53'' / 1600x720 / 2 GB / 32 GB / 5000 mAh', 'https://www.wildberries.ru/catalog/13615126/detail.aspx', '8990', 'Xiaomi')

Zrzut wyników do JSON

Ogólny format wyniku:

[% 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 %]

Tekst początkowy:

[

Tekst końcowy:

]

Przykład wyniku:

[
{
"query": "smartfon",
"items": [
{
"link": "https://www.wildberries.ru/catalog/27379808/detail.aspx",
"name": "Smartfon 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": "Smartfon iPhone 11 128GB / 6.1'' / 1792x828 / Liquid Retina HD / 128 GB",
"price": 54990
},
{
"link": "https://www.wildberries.ru/catalog/15875669/detail.aspx",
"name": "Smartfon iPhone 12 128GB / 6.1'' / 2532x1170 / OLED / 128 GB",
"price": 69990
},
...
]
},
...
]
wskazówka

Aby opcje "Prepend text" i "Append text" były dostępne w Edytorze zadań, należy aktywować "More options".

Możliwe ustawienia

ParametrWartość domyślnaOpis
Pages count5Liczba stron do scrapowania
Sort byPopularitySortowanie wyników
AddressAdres punktu odbioru
LongitudeDługość geograficzna punktu odbioru
LatitudeSzerokość geograficzna punktu odbioru
notatka

Domyślnie Wildberries wyświetla wyniki dla Moskwy. W scraperze istnieje możliwość ustawienia punktu odbioru, a lista wyników zostanie powiązana z konkretną lokalizacją. Aby to zrobić, należy nadpisać 3 parametry: Address, Longitude i Latitude. Niezbędne wartości dla tych parametrów można uzyskać w przeglądarce:

1. Wybieramy żądany punkt odbioru, otwierając wcześniej Narzędzia deweloperskie (w Chrome klawisz F12)

img

2. W zakładce „Sieć” szukamy zapytania create?version=1 i kopiujemy dane do ustawień scrapera

Po wybraniu punktu odbioru otwórz zakładkę Sieć (w Chrome po angielsku — Network). Znajdź zapytanie create?version=1, w odpowiedzi (Preview) skopiuj address, lat i lon odpowiednio do pól Address, Latitude i Longitude scrapera.

img