Hogyan lehet adatokat kaparni a Google Térképről?

Peter

A Google Maps az leggyakrabban használt navigációs alkalmazás 2022-ben, így a vállalkozások igyekeznek „felfedezhetőek” lenni benne. Minél többször jelennek meg a Google Térkép kereséseiben, annál nagyobb az esélyük arra, hogy több ügyfelet szerezzenek.

Mivel a vállalkozások kereshetővé teszik az összes információt, a Google Térkép immár tele van az üzleti kutatásban kulcsfontosságú adatokkal – potenciális ügyfelek generálásához, versenytársak megtalálásához vagy az ügyfelek véleményének elemzéséhez.

A probléma az, hogy a Google Térkép internetes lekaparása időt és erőforrást igényel a hatalmas adatmennyiség miatt. Szerencsére van mód a folyamat automatizálására.

Olvasson tovább, hogy megtudja, hogyan nyerhet ki adatokat a Google Térképből!

🔑 Kulcs elvitelek

  • A Google Térkép a legtöbbet letöltött navigációs alkalmazás. Adatbázisa hatalmas, így értékes adatok kiváló forrása a vállalatok számára.
  • A Google Maps lekaparásához Pythonra, BeautifulSoupra, egy kódszerkesztőre, például a Visual Studio Code-ra és a kérések könyvtárra van szüksége.
  • Bár a nyilvános adatok lekaparása általában legális, tartsa tiszteletben a védjegy- és szerzői jogi törvényeket. Használjon proxyt, hogy elkerülje a Google IP-blokkolását.
  • A Google Térkép kaparásához olyan eszközöket használhat, mint a Spylead, Apify és Outscraper, amelyek mindegyike egyedi funkciókat és árazási lehetőségeket kínál.

5 lépés hogy Kapar Google Maps adatok

Több mint két évtizede a Google Maps adatbázis gazdagsága sokat nőtt. Még mindig másodpercenként kap frissítéseket.

A Google Térkép jelenleg több mint 220 országban és 40 nyelven érhető el. A platform 120 millió helyi útmutatóval rendelkezik világszerte, és több mint 170 képet gyűjtött össze az utcaképekből.

Adatok a Google Térképről

A Google API-t kínál a térképadatok lekaparásához. Ennek azonban vannak komoly korlátai. A hivatalos API például nem teszi lehetővé a Google Popular Times lekaparását, mivel adatai értékesek az ügyfelek viselkedésének felméréséhez.

A legjobb, ha saját ingyenes Google Térkép-kaparót készít, vagy előfizet egy kód nélküli megoldásra. A Google Térkép mellett ezt a kód nélküli lehúzó eszközt is használhatja a Google keresési eredményeinek lekaparására.

👍 Hasznos cikk
Az adatok kinyerése fárasztó, de webkaparással és API-val automatizálható. A legjobb megközelítés megismeréséhez tekintse meg a webkaparás és az API közötti különbségeket.

1. A Google Térkép kaparási követelményei

A Google Térkép lekaparásához szükséges eszközök elérhetők. Íme, amire szüksége van a Google Helyek Python használatával történő lekaparásához:

Kódszerkesztő

A kódszerkesztő az a hely, ahol a szkripteket írhatja. Az erősen ajánlott kódszerkesztő a Visual Studio kódde bármit használhatsz.

Piton

A Python egy egyszerű programozási nyelv. Az írás idején annak a legújabb verzió a 3.11.4de használhat 3.8-as vagy újabb verziót is.

✅Pro tipp
Ha ellenőrizni szeretné, hogy a számítógépén van-e már Python, futtassa ezt a parancsot: Python -V A telepített Python verziószámát kell visszaadnia.

Lépések adatok lekaparásához a Google Térképről Python használatával

Ha rendelkezik a folyamathoz szükséges összes eszközzel, a következőképpen kezdheti meg az adatok lekaparását a Google Térképről:

A Google Maps adatok Python használatával történő lekaparásának lépései
Jegyzet:
Az alábbi lépésekkel létrehoz egy Google Térkép kaparót a ” kulcsszó használatávalszámítógépes üzletek New Yorkban.”

1. lépés: Telepítse a szükséges könyvtárakat

Az elsődleges Python-könyvtár, amelyet ebben a folyamatban fog használni, a BeautifulSoup. Futtassa ezt a parancsot a telepítéshez:

pip install bs4

Telepítenie kell a kérések könyvtárát is. Ez a modul szükséges a get kérések elküldéséhez a cél URL-re.

pip install requests

Hozzon létre egy Python szkriptfájlt. Nevezheted, ahogy akarod. Ebben a példában ezt nevezheti „gmapscraper.py.’

Így fog kinézni a kód eleje:

import csv
import requests
from bs4 import BeautifulSoup

A CSV-könyvtár a Pythonban natív, ezért nem szükséges telepíteni.

📝 Megjegyzés
A BeautifulSoup-ot gyakran a Seleniumhoz hasonlítják, amikor Pythont használnak webkaparáshoz. Ebben az esetben a BeautifulSoup jobb, mert a Google Maps tartalma statikus. Ha dinamikus adatokat kapar, a szelén jobb.

2. lépés: Küldjön kérést

A cél URL-cím megszerzéséhez lépjen a Google-ba, és keresse meg a kimásolni kívánt kulcsszót. Kattintson rá További eredmények további bejegyzések betöltéséhez, majd másolja ki az URL-t.

Határozza meg a cél URL-t és a felhasználói ügynököt a következő kóddal:

url="https://www.google.com/search?sa=X&tbs=lf:1,lf_ui:10&tbm=lcl&q=pc+shops+in+new+york&rflfq=1&num=10&rllag=40730428,-73990581,1751&ved=2ahUKEwjauo7J4YmAAxUUbmwGHVlmAKsQjGp6BAhHEAE&biw=1208&bih=719&dpr=1#rlfi=hd:;si:;mv:((40.7844352,-73.80324329999999),(40.6516932,-74.0195832));tbs:lrf:!1m4!1u3!2m2!3m1!1e1!1m4!1u2!2m2!2m1!1e1!2m1!1e2!2m1!1e3!3sIAE,lf:1,lf_ui:10"

user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

headers = {'User-Agent': user_agent}
response = requests.get(url, headers=headers)

Ez a lépés hozzáadja a felhasználói ügynököt a kérés fejlécéhez, hogy valódi böngészőként jelenjen meg. A get() függvény megpróbálja betölteni a tartalmat a céloldalról.

3. lépés: Határozza meg a CSS-választókat

A CSS-választók pontosan meghatározzák a kimásolni kívánt információkat. A CSS-szelektorokat az oldal HTML-tartalmának szerkezetének elemzésével érheti el.

Kattintson a jobb gombbal bárhol az oldalon, és válassza ki Vizsgálja meg. Ezzel a lépéssel hozzáférhet a böngésző DevTools programjához, és megtekintheti a webhely HTML-kódját.

Vegye figyelembe, hogy ez a módszer időigényes, és sok próbálkozással és hibával jár. A folyamatot azonban megkönnyítheti egy CSS-választó keresőeszköz használatával.

Az egyik használható eszköz az SelectorGadget. Ez egy nyílt forráskódú böngészőbővítő eszköz, amely lehetővé teszi a pontos CSS-kiválasztók megtalálását az elemek kiválasztásával és elutasításával.

Íme a példakód a kiválasztott CSS-választókkal:

soup = BeautifulSoup(response.content, 'html.parser')

selectors = {
    'Shops': '.dbg0pd .OSrXXb',
   'Ratings': '.Y0A0hc',
    'Addresses': '.rllt__details div:nth-child(3)',
    'Phone number': '.rllt__details div:nth-child(4)'
}

A BeautifulSoup() függvény tartalmazza a használni kívánt elemző típusára vonatkozó argumentumot.

Ezenkívül be kell állítania egy szótárt a lekaparni kívánt létfontosságú információkhoz. Íme további kódok egy szótár létrehozásához, amely tárolja az elemzett eredményeket, és ismételje meg a kiválasztókat.

A telefonszámokat tartalmazó elemek között szerepelni fog az üzletek nyitvatartása és zárva tartása is. Ha ezekre az információkra nincs szükség, szűrheti őket a következő kód hozzáadásával:

results = {key.capitalize(): () for key in selectors}

for key, selector in selectors.items():
    elements = soup.select(selector)

4. lépés: Mentse el az eredményeket egy CSV-fájlba

A CSV egy egyszerű szöveges fájl, amely nagy mennyiségű adat tárolására képes. Ezenkívül könnyen importálható táblázatokba, és általában kompatibilis a leadgeneráló szoftverekkel.

A következő kódkészlet segít az összes kimásolt adat CSV-fájlban való tárolásában. A kezdéshez be kell állítania a CSV-fájl nevét a következő kóddal:

filename="scraped_data.csv"

Határozza meg a listák maximális hosszát az eredményszótárban a következő futtatással:

max_length = max(len(result_list) for result_list in results.values())

Az eredmények megfelelő igazítást igényelhetnek. Ehhez a lépéshez használja:

for result_list in results.values():
    while len(result_list) < max_length:
        result_list.append('')

Használja a kulcsokat oszlopnévként:

fieldnames = results.keys()

Ez a parancs a maximális hossz alapján igazítja az értékeket:

results_list = ({field: results(field)(i)
                for field in fieldnames} for i in range(max_length))

Az eredmények CSV-fájlba írásához a megadott fájlnévben:

with open(filename, 'w', newline="", encoding='utf-8') as csvfile:
   writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerows(results_list)

Győződjön meg arról, hogy a kódolási argumentum UTF-8-ra van állítva, hogy elkerülje a kódolási hibákat. Ezt követően nyomtasson ki egy értesítő üzenetet a terminálján az alábbi módon:

print(f"Data has been successfully saved to {filename}.")

5. lépés: Futtassa a kódot

Tekintse át a kódot az esetleges szintaktikai hibákért. A teljes szkriptnek így kell kinéznie:

import csv
import requests
from bs4 import BeautifulSoup

# Send a GET request to the webpage you want to scrape
# Replace with the URL of the webpage you want to scrape
url="https://www.google.com/search?sa=X&tbs=lf:1,lf_ui:10&tbm=lcl&q=pc+shops+in+new+york&rflfq=1&num=10&rllag=40730428,-73990581,1751&ved=2ahUKEwjauo7J4YmAAxUUbmwGHVlmAKsQjGp6BAhHEAE&biw=1208&bih=719&dpr=1#rlfi=hd:;si:;mv:((40.7844352,-73.80324329999999),(40.6516932,-74.0195832));tbs:lrf:!1m4!1u3!2m2!3m1!1e1!1m4!1u2!2m2!2m1!1e1!2m1!1e2!2m1!1e3!3sIAE,lf:1,lf_ui:10"

# Define the user agent
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

# Set the user agent in the headers of the HTTP request
headers = {'User-Agent': user_agent}
response = requests.get(url, headers=headers)

# Create a BeautifulSoup object to parse the HTML content
soup = BeautifulSoup(response.content, 'html.parser')

# Define a dictionary of CSS selectors
selectors = {
    'Shops': '.dbg0pd .OSrXXb',
   'Ratings': '.Y0A0hc',
    'Addresses': '.rllt__details div:nth-child(3)',
    'Phone number': '.rllt__details div:nth-child(4)'
   # Add your additional key and CSS selector here if you want to parse more
}

# Create a dictionary to store the parsed results
results = {key.capitalize(): () for key in selectors}

# Iterate over the selectors in the dictionary
for key, selector in selectors.items():
    elements = soup.select(selector)

    # Iterate over the found elements and extract relevant information
    for element in elements:
        text = element.get_text()
        if key.capitalize() == 'Phone number':
           phone_number = text.strip().split('·')(-1).strip()
            results(key.capitalize()).append(phone_number)
        else:
            results(key.capitalize()).append(text.strip())

# Define the filename for the CSV file
filename="scraped_data.csv"

# Determine the maximum length of the lists in the results dictionary
max_length = max(len(result_list) for result_list in results.values())

# Fill any missing values with empty strings to align the rows
for result_list in results.values():
    while len(result_list) < max_length:
        result_list.append('')

# Extract the column names from the keys of the results dictionary
fieldnames = results.keys()

# Create a list of dictionaries, aligning the values based on the maximum length
results_list = ({field: results(field)(i)
                for field in fieldnames} for i in range(max_length))

# Write the results to the CSV file
with open(filename, 'w', newline="", encoding='utf-8') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerows(results_list)

print(f"Data has been successfully saved to {filename}.")

A kód futtatásához használhatja a VS Code beépített terminált vagy a rendszerterminált/parancssort. Futtassa ezt a parancsot:

python gmapscraper.py

Megtekintheti az eredményeket a VS Code-ban, ha a jobb gombbal a CSV-fájlra kattint, és kiválasztja Nyissa meg az előnézetet. Megnyithatja táblázatként is.

Kikapart Google Maps adatok CSV formátumban
✅Pro tipp
A legtöbb webhelyhez hasonlóan a Google sem fogadja szívesen a webkaparókat. Problémák adódhatnak a karcolásgátló intézkedések miatt.
Ennek egyik módja a kérések számának korlátozása. A proxy rotációját is beépítheti a Python-szkriptbe, hogy elkerülje az IP-blokkolást.

A Google Térkép lekaparásának biztonsága és jogszerűsége

A nyilvánosan elérhető információk lekaparása legális, beleértve a Google Térkép adatait is. Ez azonban attól függ, hogyan kívánja használni ezeket az adatokat.

Védjegytörvény a cégneveket is védi. Egyes képek szerzői jogvédelem alatt állnak, ami azt jelenti, hogy a DMCA védi őket.

Ettől eltekintve fennáll annak a veszélye, hogy IP-jét blokkolják a Google lekopásgátló mechanizmusai.

✅Pro tipp
Az egyik módja annak, hogy elkerülje a Google biztonságának IP blokkolását, ha proxyt használ a törlés közben. Ez az eszköz más IP-címet ad, ami megakadályozza, hogy a webhely blokkolja az Ön valódi IP-címét.

A legjobb Google Térkép-kaparók

Vannak olyan kaparók, amelyek teljesen kódok nélkül kínálják a Google Maps adatkinyerését. Íme néhány a legfontosabb ajánlások közül:

1. Spylead

Spylead Google Maps Scraper

Főbb jellemzők

  • E-mail kereső és ellenőrző
  • Hitelrendszer
  • SERP kaparó

Ár: 39 USD/hó 1500 kreditért

Az egyik legjobb eszköz, amellyel a Google térképeket lekaparhatja Spylead.

Főleg e-mail kereső szolgáltatás, de hatékony eszköz a Google Maps adatok lekaparására is. A szolgáltatás kreditrendszerben működik, ahol 10 találatonként egy kreditet kell elkölteni.

Profik Hátrányok
Rugalmas árképzés a kreditrendszerrel Nem tartalmazza a „népszerű időket” a kimásolható adatok között
Más funkciókat is használhat, mint például az e-mail kereső/ellenőrző és a SERP kaparó
Könnyű használat

2. Apify

Apify Google Maps Scraper

Főbb jellemzők

  • Ingyenes csomag havi 5 USD-s jóváírással
  • Támogatja a JSON-t, az XML-t, a CSV-t, az Excelt és az RSS-hírcsatornát
  • 1300+ színész (kaparó)

Ár: 49 USD, majd felosztó-kirovó 15 000–20 000 eredményért

Apify egy másik kód nélküli megoldás a Google Térkép webkaparásához. Könnyen használható felhasználói felülettel rendelkezik, használati útmutatókkal és tanfolyamokkal.

Az árképzés is rugalmas a „kirovó felosztású” rendszerrel. Csak azért fizet, amit felhasznál, vagy korlátlan ideig az ingyenes csomagban maradhat.

Profik Hátrányok
Határozatlan idejű ingyenes csomag Drága a nagyszabású projektekhez
Több fájlformátum támogatása
Sok elkötelezett színész (kaparó) közül választhat

3. Kikaparó

Outscraper Google Maps Scraper

Főbb jellemzők:

  • Legfeljebb 15 adatpontot tud lekaparni
  • Ingyenes terv a felosztó-kirovó átálláshoz
  • Tekintse át a célzást speciális gyűjtési beállításokkal

Ár: 0,0002 dollár rekordonként

Kikaparó egy texasi székhelyű webkaparó szolgáltatás. A webhely ingyenes csomagot kínál az első 500 rekordhoz, majd átvált a „kirovó-kirovó” árazásra.

A Google Maps lehúzója rekordonként legfeljebb 15 adatpontot tud kinyerni. Speciális beállítások is rendelkezésre állnak az áttekintés pontosabb célzásához.

Profik Hátrányok
Rendkívül rugalmas árképzés Nem kommunikatív felhasználói felület
Speciális beállítások

Következtetés

A Google Maps már két évtizede mindenki kedvenc webes térképészeti platformja. Az emberek digitális és valós életében betöltött létfontosságú szerepe az, hogy a Google Térkép több milliárdnyi adatot tárol, amelyeket le lehet kaparni.

Az ajánlásoknak megfelelően óvatosan és mérsékelten kaparja le a Google Térképet. Végezze el kaparási projektjeit, figyelembe véve a platform fontosságát sok ember számára.

GYIK

  1. A Google Maps API nem ingyenes?

    Igen. A Google Maps API árazása a kérelmek számától és típusától függ.

  2. Ki lehet tiltani a webkaparás miatt?

    A webhely házirendjétől függően IP-címe letiltható a weboldalak lekaparása miatt.

  3. Mi a határa a Google-keresés kaparásának?

    Nincs határ. Az egyetlen korlát a lehúzó azon képessége, hogy megkerülje a Google lekopás elleni intézkedéseit. Ha nem használ proxyt, óránként csak 15-20 kérést küldhet blokkolás nélkül.

A szerzőről

Peter, az eOldal.hu tapasztalt SEO szakértője és tartalomgyártója. Több mint 10 éve foglalkozik keresőoptimalizálással és online marketinggel, amelyek révén számos magyar vállalkozás sikerét segítette elő. Cikkeiben részletes és naprakész információkat nyújt az olvasóknak a legfrissebb SEO trendekről és stratégiákról.