Pular para o conteúdo principal

Shop::Yandex::Market - Scraper de produtos do Yandex.Market

img

Visão geral do scraper

Usando o scraper de produtos Yandex market, você pode obter dados da ficha do produto, coletar uma base de links de produtos, monitorar a dinâmica de preços dos produtos, mudanças no número de vendedores, coletar avaliações de classificação e o número de comentários sobre o produto, além de coletar imagens dos produtos.

A funcionalidade do A-Parser permite salvar as configurações de extração de dados para uso posterior (presets), definir agendamentos de extração de dados e muito mais. Você pode usar a multiplicação automática de consultas, substituição de subconsultas a partir de arquivos, busca combinatória de caracteres alfanuméricos e listas para obter o máximo possível de resultados.

Dados coletados

img

  • Nome do produto
  • Link do produto
  • Imagem do produto
  • Preço e preço antigo
  • Moeda
  • Classificação e número de comentários
  • Número de vendedores
  • Informações adicionais
  • Número de compras e visualizações do produto

Variantes de uso

  • Coleta de links de produtos
  • Avaliação da popularidade de produtos
  • Monitoramento da dinâmica de preços e popularidade de produtos

Consultas

Como consultas, é necessário indicar palavras-chave ou o link para uma categoria, por exemplo:

xiaomi redmi note
https://market.yandex.ru/catalog/54726/list?local-offers-first=0&deliveryincluded=0&onstock=1

Exemplos de formatos de saída

O A-Parser suporta formatação flexível de resultados graças ao processador de modelos integrado Template Toolkit, o que permite exibir resultados em formato livre, bem como em formato estruturado, como CSV ou JSON.

Saída de nome, preço mínimo e classificação do produto

Formato do resultado:

$products.format('Nome: $title, Preço mínimo: $amountfrom, Classificação: $rating\n')

Exemplo de resultado:

Nome: Smartphone Apple iPhone 11 64GB, Preço mínimo: 46 244,  Classificação: 4.7
Nome: Smartphone Apple iPhone Xr 64GB, Preço mínimo: 36 990, Classificação: 4.7
Nome: Smartphone Apple iPhone 12 64GB, Preço mínimo: 60 840, Classificação: 4.7
Nome: Smartphone Apple iPhone SE 2020 64GB, Preço mínimo: 33 490, Classificação: 4.5
Nome: Smartphone Apple iPhone Xr 128GB, Preço mínimo: 43 450, Classificação: 4.7

Saída em tabela CSV

Formato do resultado:

[% FOREACH item IN products;   
tools.CSVline(item.cardlink, item.title, item.amountfrom, item.rating, item.commentscount);
END %]

Exemplo de resultado:

https://market.yandex.ru/product--smartfon-apple-iphone-11-64gb/558171067?nid=54726&show-uid=16206538929466307988916001&context=search&text=iphone&sku=101106266737,"Smartphone Apple iPhone 11 64GB","46 244",4.7,810
https://market.yandex.ru/product--smartfon-apple-iphone-xr-64gb/175941311?nid=54726&show-uid=16206538929466307988916002&context=search&text=iphone&sku=101103379766,"Smartphone Apple iPhone Xr 64GB","36 990",4.7,624
https://market.yandex.ru/product--smartfon-apple-iphone-12-64gb/722976004?nid=54726&show-uid=16206538929466307988916003&context=search&text=iphone&sku=101077347750,"Smartphone Apple iPhone 12 64GB","60 840",4.7,103
https://market.yandex.ru/product--smartfon-apple-iphone-se-2020-64gb/661221015?nid=54726&show-uid=16206538929466307988916004&context=search&text=iphone&sku=101099789863,"Smartphone Apple iPhone SE 2020 64GB","33 490",4.5,358

Texto inicial:

Link do produto, Nome do produto, Preço mínimo, Classificação, Número de comentários

dica

No Formato de resultados, utiliza-se o processador de modelos Template Toolkit para exibir o array $products em um loop FOREACH.

Para que a opção "Prepend text" esteja disponível no Editor de tarefas, é necessário ativar "More options". No "Prepend text", escrevemos os nomes das colunas separados por vírgula e deixamos a segunda linha vazia.

Salvamento em formato SQL

Formato do resultado:

[% FOREACH item IN products;
"INSERT INTO products VALUES('" _ item.title _ "', '"; item.cardlink _ "', '"; item.amountfrom _ "', '"; item.rating _ "')\n";
END %]

Exemplo de resultado:

INSERT INTO products VALUES('Smartphone Apple iPhone 11 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-11-64gb/558171067?nid=54726&show-uid=16206542754162480526716001&context=search&text=iphone&sku=101106266737', '46 244', '4.7')
INSERT INTO products VALUES('Smartphone Apple iPhone Xr 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-xr-64gb/175941311?nid=54726&show-uid=16206542754162480526716002&context=search&text=iphone&sku=101103379766', '36 990', '4.7')
INSERT INTO products VALUES('Smartphone Apple iPhone 12 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-12-64gb/722976004?nid=54726&show-uid=16206542754162480526716003&context=search&text=iphone&sku=101077347750', '60 840', '4.7')
INSERT INTO products VALUES('Smartphone Apple iPhone SE 2020 64GB', 'https://market.yandex.ru/product--smartfon-apple-iphone-se-2020-64gb/661221015?nid=54726&show-uid=16206542754162480526716004&context=search&text=iphone&sku=101099789863', '33 490', '4.5')

Dump de resultados em JSON

Formato geral do resultado:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.items = [];

FOREACH item IN p1.products;
obj.items.push({
link = item.cardlink
name = item.title
amountfrom = item.amountfrom
});
END;

obj.json %]

Texto inicial:

[

Texto final:

]

Exemplo de resultado:

[
{
"query": "https://market.yandex.ru/catalog--mobilnye-telefony/54726/list?text=iphone&hid=91491&was_redir=1&rt=10&cpa=0&onstock=0&local-offers-first=0",
"items": [
{
"link": "https://market.yandex.ru/product--smartfon-apple-iphone-11-64gb/558171067?nid=54726&show-uid=16206548825917275667016001&context=search&text=iphone&sku=101106266737",
"amountfrom": "46 244",
"name": "Smartphone Apple iPhone 11 64GB"
},
{
"link": "https://market.yandex.ru/product--smartfon-apple-iphone-xr-64gb/175941311?nid=54726&show-uid=16206548825917275667016002&context=search&text=iphone&sku=101103379766",
"amountfrom": "36 990",
"name": "Smartphone Apple iPhone Xr 64GB"
},
{
"link": "https://market.yandex.ru/product--smartfon-apple-iphone-12-64gb/722976004?nid=54726&show-uid=16206548825917275667016003&context=search&text=iphone&sku=101077347750",
"amountfrom": "60 840",
"name": "Smartphone Apple iPhone 12 64GB"
},
{
"link": "https://market.yandex.ru/product--smartfon-apple-iphone-se-2020-64gb/661221015?nid=54726&show-uid=16206548825917275667016004&context=search&text=iphone&sku=101099789863",
"amountfrom": "33 490",
"name": "Smartphone Apple iPhone SE 2020 64GB"
}
]
}
]
dica

Para que as opções "Prepend text" e "Append text" estejam disponíveis no Editor de tarefas, é necessário ativar "More options".

Configurações possíveis

ParâmetroValor padrãoDescrição
AntiGate presetdefaultSeleção de preset Util::AntiGateUtil::AntiGate, mais detalhes sobre a configuração aqui
AntiGate preset for old captchadefaultSemelhante ao AntiGate preset, mas usado apenas para captchas comuns (antigos, na forma de uma única imagem). Se nenhum preset for selecionado aqui, o preset selecionado em AntiGate preset será usado para esses captchas.
Auto-Solve ClickCaptchaResolução automática de captcha de clique (sem o uso de serviços)
Experimental img captcha max count1Número máximo de tentativas de imagens de captcha repetidas por tentativa
Pages count5Número de páginas para extração de dados
Search region IDNot setRegião para extração de dados