ربط أداة Screaming Frog مع Python لتحليل البيانات
ربط Screaming Frog مع Python لتحليل البيانات
يُعد الجمع بين Screaming Frog SEO Spider وPython من أكثر الأساليب فعالية لبناء نظام تدقيق تقني متقدم وقابل للتوسع. فالأداة ممتازة في الزحف واستخراج بيانات الصفحات، بينما تتفوق Python في التنظيف، والدمج، والتحليل، وإخراج تقارير يمكن الاعتماد عليها لاتخاذ قرارات تحسين دقيقة.
هذا الربط لا يوفّر الوقت فقط، بل يحوّل فحص الموقع من عملية يدوية إلى خط معالجة بيانات متكامل. وإذا كنت قد قرأت سابقاً مدخل إلى عالم أتمتة الـ SEO: لماذا الآن؟ فستلاحظ هنا التطبيق العملي لفكرة الأتمتة على واحد من أهم مصادر البيانات التقنية في السيو.
في هذا المقال سنبني تصوراً احترافياً لكيفية تصدير بيانات الزحف من Screaming Frog، ثم تحليلها باستخدام Pandas لاكتشاف الصفحات الضعيفة، وتحديد مشكلات العناوين والوصف، وقياس فرص التحسين على مستوى واسع.
لماذا هذا الربط مهم في مشاريع السيو الكبيرة؟
المشكلة الأساسية في العمل اليدوي أن ملفات الزحف تصبح ضخمة بسرعة. قد تحصل على عشرات الآلاف من الصفحات في ملف CSV واحد، ومعها عشرات الأعمدة الخاصة بالحالة، والعنوان، والوصف، والـ Indexability، وعمق الزحف، والروابط الداخلية. هنا يصبح التحليل اليدوي بطيئاً وغير دقيق.
عند إدخال Python في المشهد، يمكنك إنشاء قواعد تحليل ثابتة تطبق على كل مشروع. وهذا يتكامل مباشرة مع ما شرحناه في استخدام مكتبة Pandas لتحليل بيانات الـ SEO الضخمة، لأن الفكرة هنا ليست فتح الملف فقط، بل تحويله إلى طبقة ذكاء قابلة للأتمتة.
- تصفية الصفحات غير القابلة للفهرسة بسرعة.
- اكتشاف الصفحات ذات العناوين المفقودة أو الطويلة.
- تحليل التكرار في
TitleوMeta Description. - دمج بيانات الزحف مع بيانات خارجية مثل
Google Search Console. - إخراج تقارير دورية قابلة للمشاركة مع الفريق أو العميل.
المتطلبات الأساسية قبل البدء
قبل تنفيذ أي سكربت، تحتاج إلى إعداد بيئة عملية مستقرة. إذا لم تكن جهزت ذلك بعد، فارجع إلى تهيئة بيئة العمل: تثبيت Python والمكتبات الأساسية، لأن نجاح التحليل يعتمد على بنية عمل واضحة وسهلة التكرار.
ستحتاج عملياً إلى العناصر التالية:
- تثبيت
Screaming Frog SEO Spiderوتنفيذ زحف كامل للموقع. - تصدير التقرير بصيغة
CSV، وغالباً تقريرInternalيكفي كبداية. - تثبيت مكتبة
pandas، ويمكن إضافةopenpyxlلتصدير النتائج إلىExcel. - معرفة أساسية بالتعامل مع ملفات JSON إن كنت تخطط لاحقاً لدمج التحليل مع واجهات خارجية أو نظم تقارير آلية.
خطوات التصدير من Screaming Frog
ابدأ بتنفيذ زحف عادي للموقع، ثم من تبويب الصفحات الداخلية صدّر ملف البيانات الأساسي. في المشاريع المتقدمة، يمكنك أيضاً تصدير تقارير مخصصة مثل الصفحات التي تعاني من مشكلات Duplicate أو التي تفتقد العناصر الوصفية.
من الأفضل اعتماد تسمية موحدة للملفات مثل crawl_2025-02-01.csv حتى تتمكن لاحقاً من بناء مقارنة زمنية بين أكثر من زحف. هذه الفكرة مهمة جداً عند إنشاء نظام مراقبة مستمر بدلاً من تحليل ثابت لمرة واحدة.
احرص على توحيد الأعمدة المصدّرة من كل زحف. تغيير نوع التقرير أو أسماء الحقول بين كل مرة وأخرى سيجعل سكربت التحليل أقل استقراراً ويزيد الحاجة إلى التعديل اليدوي.
قراءة ملف الزحف وتحليله باستخدام Python
السيناريو العملي الأكثر شيوعاً هو قراءة ملف CSV، ثم استخراج الصفحات ذات القيمة التحليلية. المثال التالي يوضح سكربتاً بسيطاً لكنه فعّال للبدء:
import pandas as pd
file_path = "crawl_2025-02-01.csv"
df = pd.read_csv(file_path)
# الاحتفاظ بالصفحات HTML فقط
html_pages = df[df["Content Type"] == "text/html"]
# الصفحات القابلة للفهرسة فقط
indexable_pages = html_pages[html_pages["Indexability"] == "Indexable"]
# مشاكل العناوين
missing_titles = indexable_pages[indexable_pages["Title 1"].isna()]
long_titles = indexable_pages[indexable_pages["Title 1 Length"] > 60]
# مشاكل الوصف
missing_descriptions = indexable_pages[indexable_pages["Meta Description 1"].isna()]
long_descriptions = indexable_pages[indexable_pages["Meta Description 1 Length"] > 155]
# تجميع النتائج
summary = {
"total_html_pages": len(html_pages),
"total_indexable_pages": len(indexable_pages),
"missing_titles": len(missing_titles),
"long_titles": len(long_titles),
"missing_descriptions": len(missing_descriptions),
"long_descriptions": len(long_descriptions),
}
print(summary)
# تصدير النتائج
missing_titles.to_csv("missing_titles.csv", index=False)
long_titles.to_csv("long_titles.csv", index=False)
missing_descriptions.to_csv("missing_descriptions.csv", index=False)
long_descriptions.to_csv("long_descriptions.csv", index=False)
هذا السكربت يختصر جزءاً كبيراً من العمل المتكرر. بدلاً من التنقل بين الفلاتر يدوياً، تحصل فوراً على ملفات جاهزة للعمل. ويمكنك التوسع فيه لإضافة قواعد تخص H1 أو Canonical أو عمق الصفحات.
تحويل التحليل إلى نظام أتمتة حقيقي
القيمة الحقيقية لا تظهر عند تشغيل سكربت مرة واحدة، بل عندما تحوّله إلى عملية دورية. هنا يأتي دور التفكير المبني على المهام كما شرحنا في منطق البرمجة المعتمد على المهام (Task-Oriented Programming). بدلاً من كتابة كود مبعثر، قسّم العمل إلى مهام: قراءة البيانات، تنظيفها، تحليلها، ثم تصديرها.
أفكار عملية للتوسع
- إضافة مقارنة بين زحفين لاكتشاف الصفحات الجديدة أو المحذوفة.
- دمج نتائج الزحف مع بيانات النقرات والانطباعات من ربط Google Search Console API لاستخراج آلاف الكلمات المفتاحية.
- إرسال النتائج إلى
Google Sheetsعبر سيناريو مشابه لما ورد في كيفية ربط Google Sheets بالعالم الخارجي عبر Script. - بناء تنبيهات تلقائية عند زيادة الصفحات ذات الأخطاء التقنية.
وإذا كان هدفك يتجاوز مجرد العناوين والوصف، فيمكن تطوير التحليل ليشمل الروابط الداخلية أو الصفحات المكسورة، مع الاستفادة من منهجيات قريبة من مقال استخدام Python لفحص الروابط المعطلة (404) في المواقع الكبيرة أو تحليل الـ Meta Tags لآلاف الصفحات بضغطة زر.
أفضل الممارسات عند التعامل مع البيانات التقنية
نجاح المشروع لا يعتمد على الكود فقط، بل على انضباط البيانات. من الأخطاء الشائعة أن يبدأ المحلل ببناء لوغاريتمات معقدة قبل التحقق من سلامة الأعمدة، والترميزات، وأسماء الحقول. يجب التعامل مع كل ملف زحف باعتباره مصدراً خاماً يحتاج إلى فحص قبل اتخاذ القرار.
- تحقق من ترميز الملف إذا ظهرت الأحرف العربية بشكل غير صحيح.
- تأكد من وجود الأعمدة المطلوبة قبل تطبيق أي فلترة.
- لا تحلل كل الصفحات دفعة واحدة دون استبعاد الموارد غير النصية.
- وثّق قواعد التحليل حتى يستطيع الفريق إعادة استخدامها.
عند بناء تقارير للسيو التقني، لا تركّز على استخراج الأخطاء فقط. الأفضل هو ترتيبها حسب الأثر التجاري أو أثرها على الفهرسة، لأن كثرة البيانات دون أولوية تنفيذية تضعف قيمة التقرير.
الاعتبارات الأمنية وجودة العمل
إذا كنت ستربط التحليل لاحقاً مع واجهات خارجية أو سترفع النتائج إلى خدمات سحابية، فلا تضع بيانات الوصول الحساسة داخل السكربت مباشرة. طبّق ما ورد في الحماية والأمان: كيف تخفي مفاتيحك السرية في الكود؟، خصوصاً عند استخدام ملفات .env أو متغيرات البيئة.
كما أن جودة المحتوى في التقارير مهمة بقدر جودة الكود. التقرير الجيد لا يكتفي بعرض أرقام، بل يشرح ماذا تعني هذه الأرقام، وما الصفحات ذات الأولوية، وما الإجراء التالي المقترح. هذه النقطة بالذات تعزز الموثوقية وتنسجم مع معايير الخبرة والاعتمادية الحديثة في المحتوى التقني.
خلاصة عملية
ربط Screaming Frog مع Python ليس مجرد تحسين لطريقة العمل، بل انتقال من الفحص اليدوي إلى هندسة تحليل تقني قابلة للتكرار والقياس. تبدأ العملية بملف زحف بسيط، ثم تتحول إلى نظام يلتقط المشكلات، ويصنفها، ويصدرها في تقارير عملية يمكن تنفيذها بسرعة.
كلما كبر الموقع، زادت قيمة هذا الربط. ومع الوقت، يمكنك تطويره ليصبح جزءاً من منظومة أوسع تشمل Search Console وPageSpeed وSheets، لتبني بنية أتمتة سيو احترافية تمنحك سرعة أعلى، ودقة أكبر، وقرارات أفضل مبنية على البيانات.
1 comment