انتقل إلى المحتوى

كيفية استخراج البيانات من خرائط جوجل: دليل واجهة برمجة التطبيقات غير الرسمية

مع وجود أكثر من 200 مليون شركة مدرجة وأكثر من مليار مستخدم شهريًا، أصبحت خرائط Google مصدرًا لا غنى عنه لبيانات الموقع. سيعلمك هذا الدليل كيفية استخراج القيمة من خرائط Google على نطاق واسع باستخدام تجريف الويب.

المُقدّمة

توفر خرائط Google قدرًا كبيرًا من البيانات - أسماء الأنشطة التجارية والعناوين وأرقام الهواتف وساعات العمل ومراجعات العملاء والصور ومقاييس الشعبية المباشرة والمزيد. يمكن أن توفر هذه البيانات رؤى تنافسية رئيسية لأبحاث السوق وتوليد العملاء المحتملين والإعلانات المستهدفة والخدمات المستندة إلى الموقع.

على الرغم من أن Google توفر واجهة API للخرائط، إلا أنها تقتصر على 100,000 طلب مجاني شهريًا مع تكلفة الطلبات الإضافية 7 دولارات لكل 1000. بالنسبة لمشاريع التجريد الأكبر حجمًا، يمكن أن يصبح هذا باهظ التكلفة. يوفر تجريف الويب بديلاً مرنًا ومنخفض التكلفة للوصول إلى بيانات خرائط Google على نطاق واسع.

يعتبر جمع البيانات العامة عبر الإنترنت أمرًا قانونيًا بشكل عام بموجب القانون الأمريكي مثل قانون الاحتيال وإساءة استخدام الكمبيوتر. ومع ذلك، تأكد من الالتزام بشروط خدمة Google التي تحظر الاستخلاص المفرط أو التخريبي أو التحايل على أنظمتها. يمكن أن يؤدي الخدش بقوة شديدة إلى حظر عنوان IP الخاص بك.

قم بجمع البيانات ذات الصلة باحتياجاتك فقط، ولا تقم بإعادة نشر المحتوى المسروق حرفيًا. تحتوي خرائط Google على معلومات شخصية مثل رسائل البريد الإلكتروني وأرقام الهواتف التي يجب أن تكون مجهولة المصدر أو مستعارة قبل تخزينها وتحليلها.

يساعد الالتزام بالمبادئ الأخلاقية على ضمان أن عملية تجريف الويب الخاصة بك تجلب قيمة للمجتمع. تُعد مدونة ACM للأخلاقيات دليلاً ممتازًا لممارسات الحوسبة المسؤولة.

قيمة بيانات خرائط جوجل

فيما يلي بعض الإحصائيات الرئيسية التي تعرض الكم الهائل من البيانات المتوفرة على خرائط Google:

  • تم إدراج أكثر من 200 مليون شركة على خرائط Google عالميًا اعتبارًا من عام 2021
  • أكثر من مليار مستخدم نشط شهريًا لخرائط Google حول العالم
  • الملايين من المراجعات والصور وساعات العمل ونقاط البيانات الأخرى عن الشركات
  • مقاييس الشعبية المباشرة لأكثر من 10 ملايين مكان حول العالم
  • أرشيفات تاريخية لصور Street View يعود تاريخها إلى أكثر من 15 عامًا

إن فتح هذه البيانات على نطاق واسع يمكن أن يوفر استخبارات تنافسية قوية لاتخاذ القرارات المستندة إلى البيانات.

التغلب على تحديات القشط

تستخدم Google أنظمة متقدمة للكشف عن الروبوتات لمنع إساءة استخدام خدماتها. فيما يلي بعض الأساليب لتجنب التعرض للحظر أثناء عملية الكشط:

  • أتمتة متصفح السيلينيوم - يحاكي إجراءات المستخدم الحقيقية مثل التمرير والنقر من خلال أتمتة متصفح حقيقي مثل Chrome. أكثر مقاومة لاكتشاف الروبوتات من الطلبات.
  • وكلاء – قم بتدوير عناوين IP المختلفة لتوزيع الطلبات وإخفاء نشاط الكشط. تقدم خدمات الوكيل مثل BrightData آلاف عناوين IP.
  • حل Captcha – تستخدم Google الإصدار الثاني من reCAPTCHA على الخرائط والذي يتطلب حل التحديات المرئية يدويًا. يمكن لأدوات مثل Anti-Captcha أن تساعد في أتمتة ذلك.
  • بيانات نظيفة – تحتوي البيانات المسروقة على تناقضات وتكرارات تحتاج إلى التنظيف قبل التحليل. وقت الميزانية لمجادلة البيانات.

باستخدام الأدوات والتقنيات المناسبة، يمكن التغلب على هذه التحديات للوصول إلى بيانات خرائط Google على نطاق واسع.

كشط خرائط جوجل مع السيلينيوم

فيما يلي دليل خطوة بخطوة لاستخراج خرائط Google باستخدام السيلينيوم وPython:

تثبيت الحزم المطلوبة

pip install selenium pandas numpy regex pymongo

برنامج تشغيل الإعداد

from selenium import webdriver

driver = webdriver.Chrome()

قم بتكوين الوكلاء والخيارات حسب الحاجة.

البحث عن الأماكن

driver.get("https://www.google.com/maps/search/restaurants+in+Los+Angeles")

استخراج البيانات

استخدم محددات العناصر لاستخراج الحقول الرئيسية:

places = driver.find_elements(By.CLASS_NAME, "section-result")

names = [place.find_element(By.CLASS_NAME, "section-result-title").text for place in places]

addresses = [place.find_element(By.CLASS_NAME, "section-result-location").text for place in places]

place_urls = [place.find_element(By.CSS_SELECTOR, "a.section-result-action-icon").get_attribute("href") for place in places]

انقر داخل كل مكان لاستخراج بيانات إضافية مثل المراجعات:

for url in place_urls:
    driver.get(url)

    reviews = driver.find_elements(By.CLASS_NAME, "section-review-text")

تدوير الوكلاء بشكل مستمر

لكي يتم التخلص منها على نطاق واسع، يجب تدوير الوكلاء لتجنب اكتشافهم:

from brightdata.brightdata_service import BrightDataService

resolver = BrightDataService.create_proxy_resolver() 

while True:
    driver.quit()
    driver = webdriver.Chrome(resolver=resolver)
    driver.get(next_url)

وهذا يسمح لك بتجميع آلاف المواقع بشكل موثوق.

توفر Google بيانات شعبية حية للأماكن عبر نقطة نهاية واجهة برمجة التطبيقات. رد عينة:

"popularTimes": [
  {
   "day": 0,
   "data": [  
     {"hour": 8, "percent": 24},
     {"hour": 9, "percent": 100},  
     {"hour": 10, "percent": 88},
   ]
  }
] 

يحتوي حقل النسبة المئوية على مقياس الانشغال المباشر الذي يتراوح من 0 إلى 100. إليك كيفية استخراجه في بايثون:

import requests
import pandas as pd

api_url = place_url + "/data/details/json" 

times_data = requests.get(api_url).json()["popularTimes"] 

df = pd.DataFrame(times_data)[["day","hour","percent"]]

تصور هذه البيانات يمكن أن يكشف عن الأنماط الأسبوعية.

كشط الصور

تحتوي صفحات الأماكن على معارض صور يمكن استخلاصها:

images = driver.find_elements(By.CLASS_NAME, "section-image")

image_urls = [img.get_attribute("src") for img in images]

يتم تشفير بيانات الموقع مثل خطوط الطول والعرض في عناوين URL.

تخزين البيانات على نطاق واسع

بالنسبة للكاشطات الكبيرة، يعد MongoDB خيارًا رائعًا للتخزين مقارنة بملفات CSV أو أوراق Excel. بعض أفضل الممارسات:

  • استخدم مخطط مستند NoSQL للسماح بالمرونة مع تغير الحقول
  • قم بإنشاء فهارس في الحقول التي تستعلم عنها مثل أسماء الأعمال أو المواقع
  • قم بتشفير البيانات الجغرافية مثل النقاط بدلاً من العناوين للبحث الجغرافي المكاني
  • قم بجدولة النسخ الاحتياطية بشكل منتظم لأن عملية التجريد تؤدي إلى تراكم البيانات بمرور الوقت

فيما يلي نموذج لرمز الإدراج:

from pymongo import MongoClient

client = MongoClient()
db = client["google_maps"]
places = db["places"] 

post = {
    "name": name,
    "url" : url,
    "address": address,
    "location": {
        "type": "Point",  
        "coordinates": [lat, lng]
    },
    "images" : image_urls
}

places.insert_one(post)

التحليل والتصور

بمجرد استخراج البيانات، تأتي القيمة الحقيقية من التحليل والتصور. وهنا بعض الأمثلة:

نوع التحليلالوصفالمكتبات
تحليل المشاعرتحديد المواضيع الإيجابية والسلبية في المراجعاتنلتك، تكستبلوب
نمذجة الموضوعاكتشف الموضوعات الشائعة من المراجعات باستخدام LDAجينسيم، بيلدافيس
التعرف على الصوراستخراج النص من القوائم والصور الأخرى باستخدام تقنية التعرف الضوئي على الحروف (OCR).OpenCV، بيتيسراكت
التحليل المكانيتصور البيانات في طبقات على الخرائط لتحليلهافوليوم، بلوتلي اكسبريس

يوفر التحليل المتقدم معلومات تنافسية لتوجيه قرارات العمل.

استخدم حالات

تتيح بيانات خرائط Google المحذوفة خدمات قوية تعتمد على الموقع:

  • أبحاث الأسواق – قارن شعبية المنافس ومعنوياته عبر المواقع
  • توليد المبيعات – إنشاء قوائم البريد الإلكتروني والهواتف المستهدفة للتواصل
  • اختيار الموقع - تحسين المواقع الجديدة بناءً على التركيبة السكانية وحركة المرور
  • دعاية - إنشاء حملات إعلانية محلية للغاية بناءً على حركات العملاء
  • توقعات الطلب - توقع حركة المرور في المتجر لتحسين التوظيف في عطلات نهاية الأسبوع
  • الخدمات اللوجستية - رسم الطرق المثلى لعمليات التسليم بناءً على بيانات حركة المرور في الوقت الفعلي

هذه مجرد بعض الأمثلة على كيفية مساهمة بيانات خرائط Google المستخرجة من الويب في تحفيز الابتكار والنمو.

وفي الختام

في حين توفر خرائط جوجل واجهة برمجة تطبيقات مجانية محدودة، فإن استخراج البيانات من الويب يوفر وصولاً كاملاً إلى بيانات الخرائط على نطاق واسع. ومن خلال الاستخدام المسؤول، تسمح هذه التقنيات للأفراد والمؤسسات بتسخير قوة البيانات المستندة إلى الموقع لتحقيق ميزة تنافسية.

معلومات العالم التي تم رسم خرائطها – إنها موجودة هناك. اذهب الآن واحصل عليها!

الانضمام إلى محادثة

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *