Maps::Yandex - Scraper Yandex Maps

Présentation du scraper
Le scraper Yandex Maps collecte les coordonnées des organisations.
La fonctionnalité d'A-Parser permet d'enregistrer les paramètres de collecte de données pour une utilisation ultérieure (présélections), de définir un calendrier de collecte et bien plus encore. Vous pouvez utiliser la multiplication automatique des requêtes, la substitution de sous-requêtes à partir de fichiers, l'itération de combinaisons alphanumériques et de listes pour obtenir le maximum de résultats possible.
La sauvegarde des résultats est possible dans la forme et la structure dont vous avez besoin, grâce au puissant moteur de gabarits intégré Template Toolkit qui permet d'appliquer une logique supplémentaire aux résultats et d'afficher les données dans divers formats, y compris JSON, SQL et CSV.
Données collectées
- Nom de l'organisation
- Adresse et coordonnées
- Note, nombre d'avis et politique de prix
- Catégories et tags
- Site web, réseaux sociaux et téléphones
- Lien vers la photo et le logo
- Description
- Lien vers la page de l'organisation sur Yandex Maps
- Informations sur les horaires d'ouverture de l'établissement
Fonctionnalités
- Il est obligatoire d'indiquer les coordonnées et le zoom de la zone dans laquelle la recherche est effectuée
- Possibilité de définir le nombre de pages pour la collecte de données
- Possibilité de spécifier la langue des résultats
- Possibilité d'utiliser AntiGate pour contourner les captchas
Cas d'utilisation
- Collecte d'une liste d'organisations présentes dans une zone donnée
- Obtention des contacts des organisations
- Tout autre cas impliquant la recherche d'organisations sur les cartes
Requêtes
En tant que requêtes, il est nécessaire d'indiquer des mots-clés, exactement comme si vous les saisissiez directement dans le formulaire de recherche de Yandex Maps, par exemple :
pizza
Exemples de formats de sortie
A-Parser prend en charge un formatage flexible des résultats grâce au moteur de gabarits intégré Template Toolkit, ce qui lui permet d'afficher les résultats sous une forme libre, ainsi que structurée, par exemple CSV ou JSON
Sortie par défaut
Format du résultat :
$serp.format('$name ($rating): $address\n')
Le résultat affiche une liste d'organisations, leurs notes et leurs adresses :
Pirogi № 1 (4.9): Russie, Moscou, ulitsa Bolshiye Kamenshchiki, 9, str. B
Einstein lounge (4.8): Russie, Moscou, Taganskaya ulitsa, 29, str. 1
Gusto (4.1): Russie, Moscou, ulitsa Bolshaya Dmitrovka, 7/5s1
Friends (4.4): Russie, Moscou, Krasnobogatyrskaya ulitsa, 90, str. 2
Shisha City (4.4): Russie, Moscou, Vorontsovskaya ulitsa, 6, str. 7
Jacks (4.4): Russie, Moscou, 1-ya Frezernaya ulitsa, 2/1s10
Restaurant Guilty Pleasure (4.3): Russie, Moscou, Oruzheynyy pereulok, 15A
White Fox (4.3): Russie, Moscou, Bolshoy Drovyanoy pereulok, 6
Sortie de toutes les coordonnées
Format du résultat :
$serp.format('$name ($rating): $address, $reviews, $price, $categories, $tags, $site, $phones, $photo, $coordinates, $social, $logo, $description, $link\n')
Exemple de résultat :
Pirogi № 1 (4.9): Russie, Moscou, ulitsa Bolshiye Kamenshchiki, 9, str. B, 256, , Livraison de nourriture, Pizzerias, Boulangeries, livraison gratuite, paiement par carte, livraison de produits, livraison de nourriture, 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): Russie, Moscou, Taganskaya ulitsa, 29, str. 1, 153, 900–1500 ₽, Bars à chicha, Bars, pubs, Jeux intellectuels, jeux de société, terrasse d'été, paiement par carte, business lunch, projecteur, Wi-Fi, retransmissions sportives, , +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): Russie, Moscou, rue Bolshaya Dmitrovka, 7/5s1, 133, 1500–1700 ₽, Restaurants, Pizzerias, business lunch, Wi-Fi, café à emporter, vente à emporter, terrasse d'été, paiement par carte, retransmissions sportives, 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): Russie, Moscou, Vorontsovskaya ulitsa, 6, str. 7, 68, 900–1200 ₽, Bars à chicha, Bars, pubs, Anticafé, jeux de société, parking handicapés, paiement par carte, bière artisanale, Précommande en ligne, Wi-Fi, retransmissions sportives, 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/
Sortie dans un tableau CSV
Format du résultat :
[% FOREACH serp;
tools.CSVline(name, rating, address, reviews, price);
END %]
Exemple de résultat :
"Pirogi № 1",4.9,"Rossiya, Moskva, ulitsa Bolshiye Kamenshchiki, 9, str. B",256,
"Einstein lounge",4.8,"Rossiya, Moskva, Taganskaya ulitsa, 29, str. 1",153,"900–1500 ₽"
Gusto,4.1,"Rossiya, Moskva, ulitsa Bolshaya Dmitrovka, 7/5s1",134,"1500–1700 ₽"
"Shisha City",4.4,"Rossiya, Moskva, Vorontsovskaya ulitsa, 6, str. 7",68,"900–1200 ₽"
"Kalyannaya Kult Game",4.5,"Rossiya, Moskva, ulitsa Shabolovka, 2",66,"1200–1500 ₽"
Dump des résultats en JSON
Format de sortie general:
[% 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 %]
Texte initial:
[
Texte final:
]
Exemple de résultat :
[{
"query": "pizza",
"serp": [
{
"name": "Pirogi № 1",
"address": "Rossiya, Moskva, ulitsa Bolshiye Kamenshchiki, 9, str. B",
"phones": "+7 (499) 642-32-71, +7 (495) 127-78-47",
"rating": "4.9"
},
{
"name": "Einstein lounge",
"address": "Rossiya, Moskva, Taganskaya ulitsa, 29, str. 1",
"phones": "+7 (968) 068-99-09",
"rating": "4.8"
},
{
"name": "Gusto",
"address": "Rossiya, Moskva, ulitsa Bolshaya Dmitrovka, 7/5s1",
"phones": "+7 (495) 650-69-22",
"rating": "4.1"
},
]
}]
Pour que les options "Texte initial" et "Texte final" soient disponibles dans l'Éditeur de tâches, vous devez activer "Plus d'options".
Paramètres possibles
| Paramètre | Valeur par défaut | Description |
|---|---|---|
| Coordinates | 55.780844,37.6572693 | Coordonnées de la zone de recherche, paramètre obligatoire |
| Zoom | 11 | Zoom, paramètre obligatoire |
| Pages count | 5 | Nombre de pages |
| Language | English | Choix de la langue des résultats |
| AntiGate preset | default | Présélection configurée du scraper Util::AntiGate |
