Maps::Google - Scraper Google Maps

Przegląd scrapera
Scraper Google Maps zbiera dane kontaktowe organizacji z pierwszej strony wyników wyszukiwania.
Funkcjonalność A-Parser pozwala zapisywać ustawienia scrapowania do późniejszego wykorzystania (presety), ustawiać harmonogram scrapowania i wiele więcej. Możesz korzystać z automatycznego mnożenia zapytań, podstawiania podzapytań z plików, generowania kombinacji alfanumerycznych oraz list, aby uzyskać maksymalną możliwą liczbę wyników.
Zapisywanie wyników jest możliwe w dowolnej formie i strukturze, dzięki wbudowanemu potężnemu silnikowi szablonów Template Toolkit, który pozwala stosować dodatkową logikę do wyników i wyprowadzać dane w różnych formatach, w tym JSON, SQL i CSV.
Przypadki użycia scrapera
🔗 Scrapowanie organizacji
Szerokie zbieranie wszystkich organizacji w określonej lokalizacji
Zbierane dane
- Nazwa organizacji
- Adres i współrzędne
- Ocena, liczba opinii i polityka cenowa
- Kategorie i tagi
- Strona internetowa i telefon
- Link do zdjęcia
- Link do wizytówki firmy
- Link do "Zarządzaj tą firmą" (ang. Claim this business)
- Status otwarcia
- Link do serwisu rezerwacyjnego
Możliwości
- Obowiązkowo należy podać współrzędne i zoom obszaru, w którym odbywa się wyszukiwanie
- Obecnie zbierane są dane tylko z 1. strony
- Możliwość wskazania kraju, z którego odbywa się wyszukiwanie oraz języka wyników
- Automatyczne przechodzenie po współrzędnych w zadanym regionie przy użyciu opcji Collect full region
- Możliwość filtrowania wyników według statusu Temporarily closed lub Permanently closed
Warianty użycia
- Zbieranie listy organizacji znajdujących się w danym obszarze
- Pozyskiwanie kontaktów do organizacji
- Wszelkie inne warianty zakładające wyszukiwanie organizacji na mapach
Zapytania
Jako zapytania należy podawać słowa kluczowe, dokładnie tak samo, jak gdyby były wpisywane bezpośrednio w wyszukiwarkę Google Maps, na przykład:
pizza
Warianty wyprowadzania wyników
A-Parser obsługuje elastyczne formatowanie wyników dzięki wbudowanemu silnikowi szablonów Template Toolkit, co pozwala na wyprowadzanie wyników w dowolnej formie, a także w formie strukturalnej, np. CSV lub JSON
Wynik domyślny
Format wyniku:
$serp.format('$name ($rating): $address\n')
W rezultacie wyświetlana jest lista organizacji, ich oceny i adresy:
Vivat Pizza (4.7): Prospekt Marshala Zhukova, 19/1, Moscow, Russia, 123308
Premier Pizza (4.2): pr-kt Leningradskiy, 37, Moscow, Russia, 125167
City Pizza (5): Ordynka M. ul. 19, Moskva, 119017, Moscow, Russia, 115035
Dodo Pizza (4.4): Ulitsa Miklukho-Maklaya, 36A, Moscow, Russia, 117198
Pizza 22 cm (4.6): Ulitsa Solyanka, 1/2, Moscow, Russia, 109028
Zhar Pitstsa (4.7): Ulitsa Industrial'naya, 15, str. 2, Mytishchi, Moscow Oblast, Russia, 141006
Pizzeria Allo! Pizza | Kawiarnia, dostawa jedzenia Krymska (4.4): Sevastopol Ave, 15k1, 1 piętro, Moscow, Russia, 117447
City Pizza (2.3): 4-Y Syromyatnicheskiy Pereulok, 3/5, Moscow, Russia, 105120
Domino's Pizza (3.8): Beregovoy Proyezd, 5A korpus 1, Moscow, Russia, 121087
Domino's Pizza (4.5): Ulitsa Fonvizina, 17, Moscow, Russia, 127322
City Pizza (4.2): Malomoskovskaya Ulitsa, 22, Moscow, Russia, 129626
Allo! Pizza (4.5): Tkatskaya Ulitsa, 32A, Moscow, Russia, 105187
Pizza Pizza Time (4.3): SNT Zelenaya zona, Lyubertsy, Moscow, Russia, 111674
Vivat Pizza (4.7): Sirenevyy Bul'var, 15a, Moscow, Russia, 105425
Allo! Pizza (4.4): Shcholkovskoye Shosse, 72, Moscow, Russia, 107497
Dodo Pizza (4.5): Ulitsa Initsiativnaya, 13, Lyubertsy, Moscow Oblast, Russia, 140009
Domino's Pizza (4.5): Ulitsa Panferova, 4, Moscow, Russia, 119261
Allo! Pizza (4.5): Ulitsa Kostromskaya, 14B, Moscow, Russia, 127549
Allo! Pizza (4.5): Ulitsa Lyapidevskogo, 4 budynek 2, Moscow, Russia, 125581
Dodo Pizza (4.6): Staraya Basmannaya Ulitsa, 14/2s4, Moscow, Russia, 105064
Wyprowadzanie wszystkich danych kontaktowych
Format wyniku:
$serp.format('$name ($rating): $address, $reviews, $price, $categories, $tags, $site, $phones, $photo, $coordinates\n')
Przykład wyniku:
Vivat Pizza (4.7): Prospekt Marshala Zhukova, 19/1, Moscow, Russia, 123308, 558, $$, Pizza restaurant, Italian restaurant, Restaurant, Sushi restaurant, No-contact delivery, Delivery, Takeaway, Great cocktails, Wheelchair-accessible car park, Wheelchair-accessible entrance, Beer, Late-night food, Wine, Dessert, Bar on site, Good for kids, High chairs, Casual, Cosy, Groups, http://www.vivatpizza.ru/, +74957808090, https://lh5.googleusercontent.com/p/AF1QipN7H4fucI4JR1xGP6bdXorluhq9eq4l85QvCKXx=w426-h240-k-no, 55.7753678,37.4888493
Premier Pizza (4.2): pr-kt Leningradskiy, 37, Moscow, Russia, 125167, 5, , Pizza restaurant, Pizza takeaway, Delivery, Takeaway, Dine-in, Good for kids, Casual, Groups, http://premierpizza.ru/, +74952210717, , 55.7727005,37.5315456
City Pizza (5): Ordynka M. ul. 19, Moskva, 119017, Moscow, Russia, 115035, 1, $$, Pizza restaurant, Pizza delivery, Delivery, Dine-in, https://www.citypizza.ru/, , https://streetviewpixels-pa.googleapis.com/v1/thumbnail?panoid=dowqjCRyBVGFlZWPNAKQeg&cb_client=search.gws-prod.gps&w=408&h=240&yaw=87.83791&pitch=0&thumbfov=100, 55.741704999999996,37.6258066
Pizza 22 cm (4.6): Ulitsa Solyanka, 1/2, Moscow, Russia, 109028, 1309, $$, Pizza restaurant, Italian restaurant, Takeaway, Dine-in, Delivery, Wheelchair-accessible entrance, Dessert, Good for kids, Casual, Cosy, Groups, http://pizza22cm.ru/#msk, +79264297222, https://lh5.googleusercontent.com/p/AF1QipOYxiI0ITxnRGGltyFFW1Y8MmcPZMoJMz9dd77u=w408-h272-k-no, 55.754531799999995,37.6380833
Wyprowadzanie wszystkich danych kontaktowych do tabeli CSV
Format wyniku:
[% FOREACH serp;
tools.CSVline(query, name, rating, address, reviews, price, categories, tags, site, phones, photo, coordinates);
END %]
Przykład wyniku:
"pizza","Vivat Pizza",4.7,"Prospekt Marshala Zhukova, 19/1, Moscow, Russia, 123308",558,$$,"Pizza restaurant, Italian restaurant, Restaurant, Sushi restaurant","No-contact delivery, Delivery, Takeout, Great cocktails, Wheelchair-accessible entrance, Wheelchair-accessible parking lot, Beer, Late-night food, Wine, Dessert, Bar on-site, Good for kids, High chairs, Casual, Cozy, Groups",http://www.vivatpizza.ru/,+74957808090,https://lh5.googleusercontent.com/p/AF1QipN7H4fucI4JR1xGP6bdXorluhq9eq4l85QvCKXx=w426-h240-k-no,"55.7753678,37.4888493"
"pizza","Premier Pizza",4.2,"pr-kt Leningradskiy, 37, Moscow, Russia, 125167",5,,"Pizza restaurant, Pizza takeaway","Delivery, Takeout, Dine-in, Good for kids, Casual, Groups",http://premierpizza.ru/,+74952210717,,"55.7727005,37.5315456"
"pizza","Pizza 22 cm",4.6,"Ulitsa Solyanka, 1/2, Moscow, Russia, 109028",1309,$$,"Pizza restaurant, Italian restaurant","Takeout, Dine-in, Delivery, Wheelchair-accessible entrance, Dessert, Good for kids, Casual, Cozy, Groups",http://pizza22cm.ru/#msk,+79264297222,https://lh5.googleusercontent.com/p/AF1QipOYxiI0ITxnRGGltyFFW1Y8MmcPZMoJMz9dd77u=w408-h272-k-no,"55.754531799999995,37.6380833"
"pizza","Dodo Pizza",4.4,"Ulitsa Miklukho-Maklaya, 36A, Moscow, Russia, 117198",116,$$,"Pizza restaurant, Coffee stand, Pizza delivery, Pizza takeaway","No-contact delivery, Delivery, Takeout, Dine-in, Vegetarian options, Breakfast, Lunch, Dessert, Seating, Good for kids, Casual, Cozy, Family-friendly, Groups, Debit cards, NFC mobile payments",https://dodopizza.ru/Moscow/belyaevo,+78003330060,https://lh5.googleusercontent.com/p/AF1QipOJ7jbAJEA8imRs58tf2roiESzzkLCyTsVUk2Zk=w408-h272-k-no,"55.6401172,37.533220299999996"
"pizza","Zhar Pitstsa",4.7,"Ulitsa Industrial'naya, 15, str. 2, Mytishchi, Moscow Oblast, Russia, 141006",262,,"Pizza restaurant, Pizza delivery","Delivery, Takeout",http://www.pizza-jar.ru/,+79055070171,https://lh5.googleusercontent.com/p/AF1QipMMrXJkExDf3bQphAfGYTd26LfqaZwDTPvjMQkx=w408-h544-k-no,"55.9251735,37.7667529"
"pizza","City Pizza",2.3,"4-Y Syromyatnicheskiy Pereulok, 3/5, Moscow, Russia, 105120",6,$$,"Pizza restaurant, Pizza delivery","Delivery, Dine-in",http://www.citypizza.ru/,+74959818198,https://streetviewpixels-pa.googleapis.com/v1/thumbnail?panoid=57nDhT-w0Qgu7WfJNUW60Q&cb_client=search.gws-prod.gps&w=408&h=240&yaw=28.351305&pitch=0&thumbfov=100,"55.755070599999996,37.6673556"
"pizza","Pizzeria Allo! Pizza | Kawiarnia, dostawa jedzenia Krymska",4.4,"Sevastopol Ave, 15k1, 1 piętro, Moscow, Russia, 117447",30
Zapisywanie wszystkich danych kontaktowych w formacie SQL
Format wyniku:
[% FOREACH serp; "INSERT INTO serp VALUES('" _ query _ "', '"; name _ "', '"; rating _ "', '"; address _ "', '"; reviews _ "', '"; price _ "', '"; categories _ "', '"; tags _ "', '"; site _ "', '"; phones _ "', '"; photo _ "', '"; coordinates _ "')\n"; END %]
Przykład wyniku:
INSERT INTO serp VALUES('pizza', 'Vivat Pizza', '4.7', 'Prospekt Marshala Zhukova,
19/1, Moscow, Russia,
123308', '558', '$', 'Pizza restaurant, Italian restaurant, Restaurant, Sushi restaurant', 'No-contact delivery, Delivery, Takeaway, Great cocktails, Wheelchair-accessible car park, Wheelchair-accessible entrance, Beer, Late-night food, Wine, Dessert, Bar on site, Good for kids, High chairs, Casual, Cosy, Groups', 'http: //www.vivatpizza.ru/', '+74957808090', 'https://lh5.googleusercontent.com/p/AF1QipN7H4fucI4JR1xGP6bdXorluhq9eq4l85QvCKXx=w426-h240-k-no', '55.7753678,37.4888493')
INSERT INTO serp VALUES('pizza', 'Premier Pizza', '4.2', 'pr-kt Leningradskiy,
37, Moscow, Russia,
125167', '5', '', 'Pizza restaurant, Pizza takeaway', 'Delivery, Takeaway, Dine-in, Good for kids, Casual, Groups', 'http: //premierpizza.ru/', '+74952210717', '', '55.7727005,37.5315456')
INSERT INTO serp VALUES('pizza', 'City Pizza', '5', 'Ordynka M. ul. 19, Moskva,
119017, Moscow, Russia,
115035', '1', '$', 'Pizza restaurant, Pizza delivery', 'Delivery, Dine-in', 'https: //www.citypizza.ru/', '', 'https://streetviewpixels-pa.googleapis.com/v1/thumbnail?panoid=dowqjCRyBVGFlZWPNAKQeg&cb_client=search.gws-prod.gps&w=408&h=240&yaw=87.83791&pitch=0&thumbfov=100', '55.741704999999996,37.6258066')
INSERT INTO serp VALUES('pizza', 'Pizza 22 cm', '4.6', 'Ulitsa Solyanka,
1/2, Moscow, Russia,
109028', '1309', '$', 'Pizza restaurant, Italian restaurant', 'Takeaway, Dine-in, Delivery, Wheelchair-accessible entrance, Dessert, Good for kids, Casual, Cosy, Groups', 'http: //pizza22cm.ru/#msk', '+79264297222', 'https://lh5.googleusercontent.com/p/AF1QipOYxiI0ITxnRGGltyFFW1Y8MmcPZMoJMz9dd77u=w408-h272-k-no', '55.754531799999995,37.6380833')
INSERT INTO serp VALUES('pizza', 'Dodo Pizza', '4.4', 'Ulitsa Miklukho-Maklaya,
36A, Moscow, Russia,
117198', '116', '$', 'Pizza restaurant, Coffee stand, Pizza delivery, Pizza takeaway', 'No-contact delivery, Delivery, Takeaway, Dine-in, Vegetarian options, Breakfast, Lunch, Dessert, Seating, Good for kids, Casual, Cosy, Family friendly, Groups, Debit cards, NFC mobile payments', 'https: //dodopizza.ru/Moscow/belyaevo', '+78003330060', 'https://lh5.googleusercontent.com/p/AF1QipOJ7jbAJEA8imRs58tf2roiESzzkLCyTsVUk2Zk=w408-h272-k-no', '55.6401172,37.533220299999996')
Zrzut wszystkich danych kontaktowych do JSON
Ogólny format wyniku:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.query = query;
obj.contacts = [];
FOREACH item IN p1.serp;
obj.contacts.push({
name = item.name
rating = item.rating
address = item.address
reviews = item.reviews
price = item.price
categories = item.categories
tags = item.tags
site = item.site
phones = item.phones
photo = item.photo
coordinates = item.coordinates
});
END;
obj.json %]
Tekst początkowy:
[
Tekst końcowy:
]
Przykład wyniku:
[{
"contacts": [
{
"coordinates": "55.7753678,37.4888493",
"photo": "https://lh5.googleusercontent.com/p/AF1QipN7H4fucI4JR1xGP6bdXorluhq9eq4l85QvCKXx=w426-h240-k-no",
"reviews": 558,
"name": "Vivat Pizza",
"categories": "Pizza restaurant, Italian restaurant, Restaurant, Sushi restaurant",
"phones": "+74957808090",
"tags": "No-contact delivery, Delivery, Takeaway, Great cocktails, Wheelchair-accessible car park, Wheelchair-accessible entrance, Beer, Late-night food, Wine, Dessert, Bar on site, Good for kids, High chairs, Casual, Cosy, Groups",
"rating": 4.7,
"site": "http://www.vivatpizza.ru/",
"address": "Prospekt Marshala Zhukova, 19/1, Moscow, Russia, 123308",
"price": "$$"
},
{
"coordinates": "55.7727005,37.5315456",
"photo": "",
"reviews": 5,
"name": "Premier Pizza",
"categories": "Pizza restaurant, Pizza takeaway",
"phones": "+74952210717",
"tags": "Delivery, Takeaway, Dine-in, Good for kids, Casual, Groups",
"rating": 4.2,
"site": "http://premierpizza.ru/",
"address": "pr-kt Leningradskiy, 37, Moscow, Russia, 125167",
"price": ""
}
],
"query": "pizza"
}]
Aby opcje "Prepend text" i "Append text" były dostępne w Edytorze zadań, należy aktywować "More options".
Możliwe ustawienia
| Parametr | Wartość domyślna | Opis |
|---|---|---|
| Coordinates | 55.780844,37.6572693 | Współrzędne obszaru wyszukiwania, parametr obowiązkowy |
| Zoom | 11 | Zoom, parametr obowiązkowy |
| Country | Auto (Based on IP) | Kraj, z którego odbywa się wyszukiwanie |
| Language | English | Wybór języka wyników |
| Collect full region | Przyjmuje ID regionu (lub listę), a także krok w kilometrach (Step in kilometers); dla gęstej zabudowy można podać np. 0.5 lub 0.2 kilometra. Więcej informacji. OSM Mode posiada wartości: Location code / Location string. Więcej informacji | |
| Max pages | 10 | Maksymalna liczba stron na zapytanie |