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.
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:
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.
✅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
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
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ó
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
-
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.
-
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.
-
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.