Maps::Yandex - Scraper do Yandex Maps

Visão geral do scraper
O scraper do Yandex Maps coleta dados de contato de organizações.
A funcionalidade do A-Parser permite salvar configurações de extração de dados para uso posterior (presets), definir cronogramas de extração de dados e muito mais. Você pode usar a multiplicação automática de consultas, substituição de subconsultas de arquivos, geração de combinações alfanuméricas e listas para obter o máximo possível de resultados.
A preservação dos resultados é possível na forma e estrutura que você necessita, graças ao poderoso motor de modelos integrado Template Toolkit que permite aplicar lógica adicional aos resultados e exibir dados em vários formatos, incluindo JSON, SQL e CSV.
Dados coletados
- Nome da organização
- Endereço e coordenadas
- Avaliação, número de comentários e política de preços
- Categorias e tags
- Site, redes sociais e telefones
- Link para foto e logotipo
- Descrição
- Link para a página da organização no Yandex Maps
- Informações sobre o horário de funcionamento do estabelecimento
Recursos
- É obrigatório especificar as coordenadas e o zoom da área onde a pesquisa é realizada
- Capacidade de definir o número de páginas para a coleta de dados
- Capacidade de especificar o idioma dos resultados
- Capacidade de usar antigate para contornar captchas
Casos de uso
- Coleta de uma lista de organizações presentes em uma área específica
- Obtenção de contatos de organizações
- Quaisquer outros casos que envolvam a busca de organizações em mapas
Consultas
Como consultas, você deve especificar palavras-chave, exatamente como se as estivesse digitando diretamente no formulário de pesquisa do Yandex Maps, por exemplo:
pizza
Exemplos de formatos de saída
O A-Parser suporta formatação flexível de resultados graças ao motor de modelos integrado Template Toolkit, o que permite exibir resultados em forma livre, bem como estruturada, como CSV ou JSON
Saída padrão
Formato do resultado:
$serp.format('$name ($rating): $address\n')
Como resultado, é exibida uma lista de organizações, suas avaliações e endereços:
Pirogi № 1 (4.9): Russia, Moscou, ulitsa Bolshiye Kamenshchiki, 9, str. B
Einstein lounge (4.8): Russia, Moscou, Taganskaya ulitsa, 29, str. 1
Gusto (4.1): Russia, Moscou, ulitsa Bolshaya Dmitrovka, 7/5s1
Friends (4.4): Russia, Moscou, Krasnobogatyrskaya ulitsa, 90, str. 2
Shisha City (4.4): Russia, Moscou, Vorontsovskaya ulitsa, 6, str. 7
Jacks (4.4): Russia, Moscou, 1-ya Frezernaya ulitsa, 2/1s10
Restaurante Guilty Pleasure (4.3): Russia, Moscou, Oruzheynyy pereulok, 15A
White Fox (4.3): Russia, Moscou, Bolshoy Drovyanoy pereulok, 6
Saída de todos os dados de contato
Formato do resultado:
$serp.format('$name ($rating): $address, $reviews, $price, $categories, $tags, $site, $phones, $photo, $coordinates, $social, $logo, $description, $link\n')
Exemplo de resultado:
Pirogi № 1 (4.9): Russia, Moscou, ulitsa Bolshiye Kamenshchiki, 9, str. B, 256, , Entrega de comida, Pizzarias, Padarias, entrega gratuita, pagamento com cartão, entrega de produtos, entrega de comida, https://piroginomerodin.ru/, +7 (499) 642-32-71, +7 (495) 127-78-47, https://avatars.mds.yandex.net/get-altay/4489303/2a000001787d1771aebf8b4b849d986caea1/XXXL, 37.65577,55.738421, https://vk.com/piroginomerodin, https://www.instagram.com/piroginomerodin/, https://avatars.mds.yandex.net/get-tycoon/474201/2a0000016dd037b101f0cd4ad3968416440e/priority-headline-logo, , https://yandex.ru/maps/org/105121172016/
Einstein lounge (4.8): Russia, Moscou, Taganskaya ulitsa, 29, str. 1, 153, 900–1500 ₽, Hookah bars, Bares, pubs, Jogos intelectuais, jogos de tabuleiro, terraço de verão, pagamento com cartão, almoço executivo, projetor, Wi-Fi, transmissões esportivas, , +7 (968) 068-99-09, https://avatars.mds.yandex.net/get-altay/2419289/2a000001748889d4246610a4f452790b8eee/XXXL, 37.668036,55.739651, https://www.instagram.com/einstein_lounge/, https://avatars.mds.yandex.net/get-tycoon/1635364/2a00000170a408e3bda96d25bf44857eed75/priority-headline-logo, , https://yandex.ru/maps/org/127811263445/
Gusto (4.1): Russia, Moscou, ulitsa Bolshaya Dmitrovka, 7/5s1, 133, 1500–1700 ₽, Restaurantes, Pizzarias, almoço executivo, Wi-Fi, café para viagem, comida para levar, terraço de verão, pagamento com cartão, transmissões esportivas, http://www.gusto-moscow.ru/, +7 (495) 650-69-22, https://avatars.mds.yandex.net/get-altay/2887807/2a0000017357f4fe86d86cd5d3e300855b86/XXXL, 37.614142,55.760285, https://www.facebook.com/pages/gusto-итальянская-кухня/300193353486996, https://www.instagram.com/gusto.rest/, , , https://yandex.ru/maps/org/1080982853/
Shisha City (4.4): Russia, Moscou, Vorontsovskaya ulitsa, 6, str. 7, 68, 900–1200 ₽, Hookah bars, Bares, pubs, Anticafé, jogos de tabuleiro, estacionamento para deficientes, pagamento com cartão, cerveja artesanal, Pré-venda online, Wi-Fi, transmissões esportivas, http://www.shishataganka.ru/, +7 (958) 100-62-71, https://avatars.mds.yandex.net/get-altay/212783/2a0000015d991abf6d89fa812daac5491c4f/XXXL, 37.654414,55.739423, https://vk.com/shishacitytaganka, https://www.facebook.com/shishacitytaganka, https://www.instagram.com/shishacitytaganka, https://avatars.mds.yandex.net/get-tycoon/479792/2a000001746e2044d0177e25adeba8e943ac/priority-headline-logo, , https://yandex.ru/maps/org/1695943598/
Saída em tabela CSV
Formato do resultado:
[% FOREACH serp;
tools.CSVline(name, rating, address, reviews, price);
END %]
Exemplo de resultado:
"Pirogi № 1",4.9,"Russia, Moscou, ulitsa Bolshiye Kamenshchiki, 9, str. B",256,
"Einstein lounge",4.8,"Russia, Moscou, Taganskaya ulitsa, 29, str. 1",153,"900–1500 ₽"
Gusto,4.1,"Russia, Moscou, ulitsa Bolshaya Dmitrovka, 7/5s1",134,"1500–1700 ₽"
"Shisha City",4.4,"Russia, Moscou, Vorontsovskaya ulitsa, 6, str. 7",68,"900–1200 ₽"
"Kalyannaya Kult Game",4.5,"Russia, Moscou, ulitsa Shabolovka, 2",66,"1200–1500 ₽"
Dump de resultados em JSON
Formato geral do resultado:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.query = query;
obj.serp = [];
FOREACH item IN p1.serp;
obj.serp.push({
name = item.name
rating = item.rating
address = item.address
phones = item.phones
});
END;
obj.json %]
Texto inicial:
[
Texto final:
]
Exemplo de resultado:
[{
"query": "pizza",
"serp": [
{
"name": "Pirogi № 1",
"address": "Russia, Moscou, ulitsa Bolshiye Kamenshchiki, 9, str. B",
"phones": "+7 (499) 642-32-71, +7 (495) 127-78-47",
"rating": "4.9"
},
{
"name": "Einstein lounge",
"address": "Russia, Moscou, Taganskaya ulitsa, 29, str. 1",
"phones": "+7 (968) 068-99-09",
"rating": "4.8"
},
{
"name": "Gusto",
"address": "Russia, Moscou, ulitsa Bolshaya Dmitrovka, 7/5s1",
"phones": "+7 (495) 650-69-22",
"rating": "4.1"
},
]
}]
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âmetro | Valor padrão | Descrição |
|---|---|---|
| Coordinates | 37.6572693,55.780844 | Coordenadas da área de busca, parâmetro obrigatório — longitude, latitude, como no URL (ll=), e não como ao copiar coordenadas pelo botão no mapa |
| Zoom | 11 | Zoom, parâmetro obrigatório |
| Pages count | 5 | Número de páginas |
| Language | English | Seleção do idioma dos resultados |
| AntiGate preset | default | Preset pré-configurado do scraper Util::AntiGate |
