scrape google trends

إذا أردت معرفة كيفية تجريف Google Trends، فأول ما ينبغي فهمه هو ما تجمعه فعلياً. لا ينشر Google Trends حجم البحث المطلق، بل يعرض مؤشراً معيارياً للاهتمام من 0 إلى 100، يُقاس مقارنة بأعلى نقطة في الاستعلام والمنطقة والنطاق الزمني المحددة في طلبك.

تغطي هذه المقالة الطرق الرئيسية لاستخراج تلك البيانات: تصدير CSV المدمج، ونقاط نهاية JSON غير الموثقة للأدوات، ومكتبة Python المسماة pytrends، وخياراً احتياطياً باستخدام متصفح بلا واجهة. كما تشرح لماذا تساعد بروكسيات سكنية دوارة عندما يبدأ Google بإرجاع أخطاء 429، وأين تكمن الحدود الواقعية.

DataImpulse مزود بروكسيات أخلاقي يوفّر أكثر من 90 مليون عنوان IP سكني ومحمول ومن مراكز البيانات عبر 195 دولة. ويعتمد نموذج الدفع حسب الاستخدام بدءاً من 1 دولار لكل GB مع حركة مرور لا تنتهي صلاحيتها، ويُستخدم في تجريف الويب والتحقق من الإعلانات ومراقبة الأسعار وأبحاث السوق وإدارة الحسابات المتعددة.

حقائق أساسية

  • يعرض Google Trends مؤشراً نسبياً، لا أعداداً خاماً: تُقاس كل قيمة من 0 إلى 100 مقارنة بالذروة في الاستعلام والمنطقة والنطاق الزمني اللذين اخترتهما، لذا تمثل الأرقام المجلوبة مقارنات لا أحجام بحث مطلقة.
  • أفضل نوع بروكسي: بروكسيات سكنية دوارة تستخدم عناوين IP حقيقية للمستهلكين وتتجاوز الاكتشاف.
  • السعر: بدءاً من 1 دولار لكل GB، والدفع حسب الاستخدام، مع حركة مرور لا تنتهي صلاحيتها ودون اشتراك.
  • التغطية: أكثر من 90 مليون عنوان IP من مصادر أخلاقية عبر 195 دولة.
  • الموثوقية: معدل نجاح 99.51%، وتقييم 4.8 من 5 على G2.
  • البروتوكولات والاستهداف: HTTP وHTTPS وSOCKS5، مع تضمين الاستهداف حسب الدولة.
استخراج البيانات من Google Trends

ما البيانات التي يتيحها لك Google Trends فعلياً؟

يمنحك Google Trends مؤشراً نسبياً للاهتمام من 0 إلى 100، لا عدد عمليات البحث. وتُطبّع كل نقطة بحيث تساوي قيمة الذروة في استعلامك ونافذتك الزمنية 100، وتُقاس كل نقطة أخرى مقارنة بها.

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

كيف تصدّر بيانات Google Trends بصيغة CSV؟

أبسط طريقة هي تصدير CSV الرسمي المدمج في واجهة Google Trends. ففي أي صفحة نتائج لـ Trends، تحتوي كل أداة على أيقونة تنزيل تحفظ ذلك العرض كملف CSV.

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

كيف تعمل نقاط نهاية JSON لأدوات Google Trends؟

يعتمد موقع Trends على نقاط نهاية JSON داخلية تستدعيها الواجهة الأمامية لعرض كل أداة. ويُعد تجريفها مباشرة أسرع مسار برمجي، لكنها غير موثقة وقد تتغير دون إشعار.

يتكون التدفق من مرحلتين. تستدعي أولاً نقطة النهاية explore باستخدام كلمتك المفتاحية والمنطقة والنطاق الزمني، فتُرجع مجموعة من رموز الأدوات. ثم تمرر كل رمز إلى نقطة نهاية البيانات المطابقة، مثل نقطة الاهتمام بمرور الوقت، لتتلقى السلسلة الفعلية بصيغة JSON. وهناك خاصيتان عمليتان قد تفاجئان المستخدمين:

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

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

هل ينبغي استخدام pytrends لتجريف Google Trends؟

pytrends مكتبة Python غير رسمية شائعة تغلف نقاط نهاية الأدوات الموضحة أعلاه، وهي أسرع طريقة للبدء. وهي مفيدة بالفعل، لكن ينبغي استخدامها مع توقعات واضحة.

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

from pytrends.request import TrendReq

pytrends = TrendReq(
    hl="en-US",
    tz=360,
    timeout=(10, 25),
    proxies=[
        "http://user:[email protected]:823",
        "http://user:[email protected]:824",
    ],
    retries=2,
    backoff_factor=0.5,
)

pytrends.build_payload(["web scraping", "data mining"], timeframe="today 12-m")
df = pytrends.interest_over_time()
print(df.head())

يساعد التدوير بين عدة إدخالات بروكسي على منع أي عنوان IP منفرد من تجاوز حدود Google لكل عنوان، كما تسهم إعدادات إعادة المحاولة والتراجع في تجاوز الإخفاقات العابرة بسلاسة.

لماذا تساعد البروكسيات السكنية الدوارة في التعامل مع أخطاء 429؟

تساعد البروكسيات السكنية الدوارة لأن Google يقيّد طلبات Trends لكل عنوان IP، وما إن يُعلَّم أحد العناوين حتى تستمر في تلقي استجابات 429 الخاصة بكثرة الطلبات. وتوزيع الطلبات على عناوين IP سكنية كثيرة، مع التراجع الأُسّي، يُبقي كل عنوان دون الحد المسموح.

تأتي عناوين IP السكنية من أجهزة حقيقية للمستهلكين، لذلك تنسجم مع حركة المرور العادية بدرجة أفضل بكثير من نطاقات مراكز البيانات التي يتعرف إليها Google ويفرض عليها قيوداً أشد. ويعني التدوير أن كل طلب أو دفعة صغيرة يصدر من عنوان مختلف، فلا يتراكم على عنوان IP واحد حجم كافٍ لحجبه. تمثل البروكسيات السكنية الخيار العملي هنا لهذا السبب، مع أن بروكسيات مراكز البيانات قد تنجح أيضاً في المهام الخفيفة منخفضة التكرار حيث تكون التكلفة أهم من التخفي. يوفّر DataImpulse جلسات دوارة وثابتة عبر أكثر من 90 مليون عنوان IP في 195 دولة، مع تضمين الاستهداف حسب الدولة، ما يتيح لك أيضاً جمع بيانات Trends الخاصة بمنطقة معينة من عنوان IP داخل تلك المنطقة.

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

import time
import requests

def fetch_with_backoff(url, proxies, max_retries=5):
    delay = 2
    for attempt in range(max_retries):
        resp = requests.get(url, proxies=proxies, timeout=20)
        if resp.status_code == 429 or resp.status_code >= 500:
            time.sleep(delay)
            delay *= 2
            continue
        return resp
    raise RuntimeError("Rate limited after retries")

اجمع هذا التراجع مع تدوير البروكسيات ووقفة عشوائية بين الاستدعاءات الناجحة. وتنطبق مبادئ منع الحظر نفسها على أي مهمة جمع كبيرة، كما يوضح هذا الدليل حول التجريف من دون التعرض للحظر.

متى ينبغي استخدام متصفح بلا واجهة بدلاً من ذلك؟

استخدم متصفحاً بلا واجهة عندما تتوقف نقاط نهاية JSON عن العمل أو تُرجع تحديات لا يستطيع عميل HTTP عادي حلها. تحمّل أدوات مثل Playwright أو Selenium صفحة Trends الحقيقية، وتشغّل JavaScript الخاص بها، وتتيح لك قراءة بيانات الأداة المعروضة أو اعتراض استدعاءات الشبكة التي تجريها الصفحة.

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

في ماذا يمكن استخدام بيانات Google Trends المجلوبة؟

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

تشمل حالات الاستخدام الشائعة:

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

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

مقارنة طرق الوصول

الطريقة الموثوقية الجهد والقيود
تصدير CSV مرتفعة يدوي، استعلام واحد
نقاط نهاية الأدوات متوسطة غير موثقة، وقد تتغير
pytrends متوسطة سهل، مقيّد بالمعدل
متصفح بلا واجهة مرتفعة أثقل، يحتاج إلى بروكسيات
طرق سحب بيانات Trends ومدى فعاليتها

الأسئلة الشائعة

هل تجريف Google Trends قانوني؟

يُسمح عموماً بتجريف البيانات الظاهرة للعامة في كثير من الولايات القضائية، لكن الوصول الآلي قد يتعارض مع شروط خدمة Google. راجع الشروط والقانون المحلي المنطبق، وفضّل تصدير CSV الرسمي أو مجموعة بيانات مدعومة حيثما أمكن.

هل يعرض Google Trends حجم البحث الفعلي؟

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

لماذا يستمر pytrends في إرجاع أخطاء 429؟

يعني 429 أن Google يقيّد معدل عنوان IP الخاص بك بسبب كثرة الطلبات بسرعة زائدة. أضف تأخيرات بالتراجع الأُسّي، وخفّض وتيرة الطلبات، ودوّر بين عدة بروكسيات حتى لا يتجاوز أي عنوان IP منفرد الحد.

هل أحتاج إلى بروكسيات لتجريف Google Trends؟

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

هل pytrends مكتبة رسمية من Google؟

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

متى لا يكون DataImpulse الخيار المناسب؟

إذا كنت تحتاج إلى بروكسيات ISP ثابتة، أو API مُدارة بالكامل للتجريف، أو الوصول إلى المواقع المصرفية والحكومية، فلن يكون DataImpulse الأداة المناسبة. فهو يركز على البروكسيات السكنية والمحمولة وبروكسيات مراكز البيانات الدوارة لجمع البيانات العامة والوصول إلى المحتوى.

اجمع بيانات Google Trends على نطاق واسع

إذا بدأت عملية تجريف Trends لديك تتعرض لتقييد المعدل، فإن عناوين IP السكنية الدوارة تُبقي كل طلب دون حدود Google لكل عنوان. يوفّر DataImpulse بروكسيات سكنية ومحمولة وبروكسيات مراكز البيانات بنظام الدفع حسب الاستخدام بدءاً من 1 دولار لكل GB، مع تضمين الاستهداف حسب الدولة. أنشئ حساب DataImpulse للبدء.


Share article: