كيفية بناء زاحف مخصص باستخدام Colab و advertools
نشرت: 2022-05-25في هذا الفيديو ، سنتحدث عن كيفية إنشاء الزاحف المخصص الخاص بنا باستخدام Google Colab و Advertools وعدد قليل من مكتبات Python الأخرى. قبل أن تخاف أو تنزعج ، لا تفعل ذلك. خذ نفس عميق. ستكون بخير. أنا لا أعلن حتى أنني مبرمج ، لكن ما أجيده هو النسخ واللصق. أعلم أنه يمكنك استخدام زر Ctrl + C بقدر ما أستطيع. دعنا نلقي نظرة على كيفية إنشاء زاحف SEO المخصص الخاص بنا وكيف يمكننا تشغيله لمساعدتنا في حل بعض المشكلات الفريدة.
موارد
- الوصول إلى Colab هنا.
- تعرف على المزيد حول Advertools هنا.
نص الفيديو:
لنلقِ نظرة على كيفية إنشاء زاحف مخصص باستخدام Google Colab ، بالإضافة إلى Advertools ، مكتبة Python.
ما هو الزاحف SEO (العنكبوت)؟
برامج الزحف هي أدوات يمكنها الزحف إلى صفحات موقع الويب تمامًا مثلما يفعل محرك البحث ، وتساعدنا في الحصول على معلومات قيمة عن تحسين محركات البحث. يساعدنا في رؤية موقع الويب ، والطريقة التي سترى بها Google أو Bing أو محركات البحث الأخرى موقعنا. هناك أدوات تقوم بذلك. هناك عدد من الأدوات التي تقوم بذلك ، والأكثر شيوعًا هو Screaming Frog SEO Spider ، وهي أداة نحبها ونستخدمها طوال الوقت ، ولكن في بعض الأحيان نحتاج إلى حل مخصص.
لماذا ستنشئ الزاحف الخاص بك؟
تقوم معظم برامج الزحف "الجاهزة" بأشياء مذهلة ، ولكن في بعض الأحيان يكون لديك سؤال محدد يحتاج إلى إجابة ويمكنك إنشاء زاحف مخصص للتحكم في جميع المخرجات. تحصل فقط على البيانات التي تريدها أو تحتاجها. بهذه الطريقة لن تكون مقيدًا بإعداد الأداة ، ولكن يمكنك إجراء زحف سريع لموقع ويب أو سحب جزء واحد فقط من المعلومات أو سحب مجموعة كبيرة من المعلومات وتنظيمها بطريقة مختلفة ، باستخدام Colab و بايثون.
ما هو Advertools؟
Advertools هي مكتبة Python تتيح لك القيام بالكثير من الأشياء. يمكنك الزحف إلى مواقع الويب وإنشاء كلمات رئيسية لحملات التسويق عبر محرك البحث وإنشاء إعلانات نصية وتحليل SERPs واكتساب رؤى حول منشورات الوسائط الاجتماعية والقيام بالكثير. إنها مكتبة مرنة للغاية. إنه يفعل الكثير من الأشياء الرائعة وهو سهل الاستخدام إلى حد ما.
لن أصف نفسي مبرمجًا. أود فقط أن أقول إنني بارع في النسخ واللصق. على الرغم من أنني لست مبرمجًا متعمقًا في لغة Python ، فقد تمكنت من الحصول على الكثير من الفوائد من استخدام أداة مثل Advertools.
ماذا نحن سوف نفعل
هذا ما سنفعله في هذا الفيديو.
- قم بإنشاء ملف Colab جديد وقم بتثبيت Advertools
- قم بإنشاء زاحف مخصص باستخدام أدوات الإعلانات
- الزحف إلى موقع الويب والبيانات وتحليلهما
- تصور بعض هذه النتائج باستخدام مكتبة Python أخرى تسمى Plotly
- تصدير البيانات
الخطوة 1: قم بإنشاء ملف Colab وقم بتثبيت Advertools
Google Colab هي أداة ستتيح لك القيام بعدد من الأشياء الرائعة. يسمح لك بتشغيل التعليمات البرمجية داخل الخلايا لبناء الجداول ، وبناء البرامج الخاصة بك ، والقيام بأشياء مخصصة ، وأي شيء من التعلم الآلي إلى تحسين محركات البحث ، والمزيد. إذا لم تستخدمه من قبل ، فهو مجاني للاستخدام ، ويسمح لك بالاستفادة من قوة Google الحسابية مجانًا. إنه رائع جدًا لذا أوصي بشدة بالذهاب للتحقق من ذلك.
إذا لم تكن تستخدم CoLab بالفعل ، فهناك الكثير من الموارد الرائعة هنا. أحد الأشياء التي عليك القيام بها من أجل استخدام مكتبة خارج Python ، هناك التثبيت الطبيعي. تحتاج إلى تثبيت هذا البرنامج. في معظم الأوقات تستخدم وظيفة تسمى PIP وستقوم بعد ذلك بسحب تلك المكتبة الجديدة. إنها عملية بسيطة إلى حد ما للاستخدام.
أحد الأشياء التي يقوم بها كل هؤلاء الأشخاص ، الذين يبنون هذه البرامج هو أنهم يوضحون لك بالضبط كيفية إعدادها في مستنداتهم. لذلك ، اقرأ دائمًا هذه المستندات وسيسمح لك بفهم ، "كيف يمكنني استيراد هذه الأدوات وتشغيل هذه الأدوات لنفسي؟"
لتثبيت Advertools ، سنستخدم سطر التعليمات البرمجية هذا هنا:
!pip install advertools
بمجرد وضع الشفرة هنا في كتلة الخلية في CoLab ، امض قدمًا واضغط على زر التشغيل. سيتم تنفيذ كتلة التعليمات البرمجية هذه. يجب أن ترى شيئًا كهذا ، حيث يتم تثبيت الشفرة والحزمة بأكملها هنا حتى نتمكن الآن من استخدام هذه المكتبة لبناء برنامج الزاحف الخاص بنا. بمجرد أن ترى علامة الاختيار الخضراء ، فأنت تعلم أنها قد اكتملت.
الخطوة 2: إنشاء زاحف مخصص باستخدام Advertools
بعد ذلك ، سنرغب في تنفيذ سطر جديد من التعليمات البرمجية.
import advertools as adv
from advertools import crawl
import pandas as pd
يمكنك المضي قدمًا والضغط على زر الرمز هنا وسيقوم بملء هذا الزر الجديد. سنقوم باستيراد بعض الأجزاء المحددة من مكتبة Advertools. نحن نستورد أدوات الإعلانات ، ونستورد طريقة الزحف. نحن أيضًا نستورد شيئًا يسمى الباندا. بالنسبة لأولئك الذين ليسوا على دراية ببايثون ، تسمح لنا حيوانات الباندا بالعمل مع بياناتنا داخل إطارات البيانات ، وإنشاء جداول في بايثون بشكل أساسي.
بمجرد قيامك بإعداد كل هذا ، يمكنك المضي قدمًا وتشغيل الكود الخاص بك مرة أخرى. سيؤدي هذا إلى استيراد كل هذه المعلومات. إذا كنا نبني زحفًا ، فستلاحظ هنا ، أنه يتحدث عن كيفية القيام بذلك ، وكيف يمكننا استيراد عمليات الزحف هذه. هناك عدد قليل من الأساليب. يمكنك استيراد أدوات Advertools كما فعلنا وتشغيل سطر الأوامر هذا ، والذي سيفعل ما نقوم به.
أحب أن أجعل استخدام Colab أسهل قليلاً في حال أراد شخص ما في فريقي الاستفادة منه أيضًا. سنفعل شيئًا مختلفًا قليلاً عما يعرضونه هنا. ولكن إذا اتبعت هذا النهج ، فستفعله بشكل صحيح وسيعمل أيضًا.
site = "https://simplifiedsearch.net/" #@param {type:"string"}
crawl(site, 'simp.jl' , follow_links= True )
crawl_df = pd.read_json( 'simp.jl' , lines= True )
crawl_df.head()
ما سنفعله هو هذا السطر من التعليمات البرمجية. أول شيء نقوم به هو تحديد متغير وسيكون المتغير هو موقع الويب الذي نريد الزحف إليه. باستخدام سلسلة نوع المعلمات هذه ، فإنها تعطيني مربعًا هنا ، والذي يسمح لي بعد ذلك بالكتابة هنا ، ما هو موقع الويب الذي أريد الزحف إليه. يمكنني وضع موقع الويب الخاص بي هنا. يمكنني وضع أي موقع ويب هنا وسيحدد هذا المتغير بالنسبة لي. بهذه الطريقة لا يتعين علي كتابتها هنا. يمكنني فقط كتابته في نموذج ويمكن لأي شخص ليس مرتاحًا للنقر داخل مربع الخلية أن يمضي قدمًا هنا ويكتب جانبًا للخارج.
في هذه الحالة ، سنستخدم موقع البحث المبسط ، فقط لأننا سنستخدمه طوال الوقت. سنمضي قدمًا ولصقه هنا. أدناه مباشرة ، نتبع نفس القواعد التي كانوا يضعونها هنا. نحن نستخدم Advertools.crawl ، ثم نستخدم الموقع كمتغير لدينا. لدينا ملف الإخراج. ثم نريده أن يتبع الروابط داخل الموقع.
نقوم بالخطوة التالية أيضًا ، حيث قمنا بتعيين إطار بيانات الزحف ، ونطلب منه فتح ملف الإخراج الخاص بنا لأنه سينتج في JSON. ستقوم حيوانات الباندا بقراءة JSON وإنشاء إطار بيانات لنا. في النهاية ، أخبرنا فقط أن نعرض رأس إطار البيانات هذا ، للتأكد من أن كل شيء يعمل على النحو المنشود. بمجرد اتباع هذه الخطوة وتشغيل هذه الخلية ، سنقوم بالزحف إلى موقع الويب وسنقوم بتفريغ البيانات أدناه وسنكون قادرين على رؤية جميع الوظائف المختلفة في هذا الزحف.
سأقوم بتشغيل هذه الخلية. قد يستغرق الأمر بضع دقائق فقط لأنه يقوم بعملية الزحف إلى موقع الويب بالكامل. بمجرد الانتهاء ، سنتحدث عن كيفية الاستفادة من بيانات الزحف لسحب أجزاء معينة من المعلومات.
الخطوة 3: الزحف إلى موقع الويب والبيانات وتحليلهما
لقد تم الزحف إلى الموقع الآن ويمكنك أن ترى أن لدي قائمة بعناوين URL والعناوين وأوصاف التعريف ووجهة النظر ومجموعة الأحرف و H1s و H2s و H3s. يتم سحب كل هذه المعلومات في هذا الإطار. إذا كنت تريد رؤيتها أكثر نظافة ، يمكنك الضغط على هذا الزر السحري هنا وسيقوم Google بنقل هذه البيانات هنا إلى إطار بيانات أسهل قليلاً للعمل به. لدي إجمالي عدد الأعمدة هنا هو 266. وهذا عدد كبير من الأعمدة التي يمكنني العمل معها.
قد تسأل نفسك ما هو موجود في كل هذه الأعمدة. يمكننا العودة هنا إلى أدوات الإعلانات ويمكنك رؤية جميع العناصر المختلفة. هناك قدر كبير من بيانات التصدير التي يمكننا الاطلاع عليها وسحب الكثير من المعلومات الرائعة.
إذا أردنا رؤية قائمة بجميع الأعمدة المختلفة المتوفرة لدينا ، فيمكننا تشغيل هذا الكود:

columns = list (crawl_df)
columns
نحتاج إلى أخذ الأعمدة أولاً وإنشاء قائمة بها. سنستخدم قائمة الرموز ثم نضع أقواسًا ، وداخل crawl_DF ، وهو اسم إطار البيانات لدينا ، ثم ندعو أعمدة القائمة الجديدة. لدينا هنا أعمدة ، ونقوم بتشغيل تلك الخلية ، ويمكنك رؤية كل هذه الأعمدة المختلفة الممكنة. إنه قدر كبير من المعلومات ، كما ترى ، يبحث عن مجموعة كبيرة من المعلومات.
ماذا لو كنت تريد أن ترى مجرد جزء من تلك المعلومات؟ ماذا لو كنت ترغب فقط في الحصول على جميع العناوين أو كل الأوصاف التعريفية أو بعض معلومات علامة H ، أو ربما كنت ترغب في رؤية جميع الصفحات ونوع ترميز schema.org الذي قد يكون لديك عليها. هذا هو المكان الذي يكون فيه الحصول على شيء مثل Advertools مفيدًا.
لنفترض أننا أردنا إلقاء نظرة على أنواع JSON-LD عبر صفحاتنا.
json_df = crawl_df[[ 'url' , 'jsonld_@type' ]]
json_df
يمكننا البدء ببعض التعليمات البرمجية الجديدة. دعنا نمضي قدمًا وننشئ إطار بيانات جديدًا يسمى JSON-DF. نريد الحصول على بعض المعلومات من إطار بياناتنا الأصلي. أول شيء نرغب في القيام به ، دعني أنزل هنا قليلاً لتسهيل قيام الجميع بالزحف ، _DF. سنستخدم قوسًا وقوسًا آخر.
أول شيء نريد سحبه هو عنوان URL. نحن نعلم أن عنوان URL مهم لأننا نحتاج إلى معرفة جميع الصفحات داخل موقعنا ، وجميع عناوين URL. الشيء التالي الذي نريد القيام به هو أننا نريد العثور على نوع JSON. يمكننا العودة إلى هذه القائمة ويمكننا الانتقال إلى نوع JSON ونسخه والقول ، أريد أيضًا معرفة نوع JSON. سوف أمضي قدمًا وأبقي هذا متسقًا ، وبهذه الطريقة نتبع أفضل الممارسات. ماذا نفعل في هذا الخط الصغير هنا؟ قلنا "أنشئ إطار بيانات جديدًا" واستخدم البيانات من قاعدة بياناتنا الأصلية ، من إطار بياناتنا الأصلي واسحب فقط عناوين URL وأنواع JSON-LD.
إذا قمت بتشغيل هذا ، فسيتم إنشاء إطار بيانات جديد بهذه المعلومات فقط. من أجل رؤية هذه البيانات ، يمكنني المضي قدمًا ، ووضع JSON_DF ، وإنشاء خلية جديدة ، والضغط على Enter. يعطيني قائمة بجميع صفحاتي ونوع الترميز المرتبط بتلك الصفحات المحددة. يمكن أن يكون هذا مفيدًا جدًا إذا كنت تريد البحث بسرعة والعثور على كل JSON على موقع الويب الخاص بك ، والأنواع التي لديك ، والترميز الذي لديك.
علاوة على ذلك ، هل لديك بعض الصفحات التي تفتقد إلى الترميز؟ يمكنك التعرف بسرعة على هؤلاء. لدينا هذه البيانات الجديدة حيث لدينا جميع عناوين URL الخاصة بنا ولدينا جميع أنواع JSON-LD التي نعرف أنها موجودة في تلك الصفحة.
الخطوة 4: تصور النتائج
لنفترض أننا نريد إنشاء تقرير أو رسم بياني سريع لعرضه على ، إما عميل أو شخص آخر ، أو مقدار المعلومات والبيانات التي أضفناها إلى هذا الموقع من أجلهم وأنواعها المختلفة.
أول شيء يجب أن أفعله هو حساب جميع أنواع الترميز المختلفة التي تمت إضافتها ، ومن ثم يمكنني تصورها. لنبدأ بإحصاء هذا وإنشاء إطار بيانات جديد. لقد قمت بالفعل بإنشاء هذا الرمز وسأرشدك خلاله:
json_counts = json_df[ 'jsonld_@type' ].value_counts()
json_counts = json_counts.reset_index()
json_counts
يطلق عليه "عدد JSON". هذا إطار بيانات جديد. نأخذ البيانات من العمود JSON-LD هنا. نجعله يحسب القيم الفريدة الموجودة في هذا العمود. عندما أقوم بتشغيل هذا الكود ثم أخبره بإخراجه ، سترون أنه تم احتساب كل هذه المعلومات.
ما يفعله هو أنه يعطيني هذا الخطأ لأنه يعثر على بعض الأصفار أو بعض NAS في القائمة. هذا جيد لأنك سترى في غضون ثانية أننا حصلنا على هذه المعلومات هنا. إليك جميع أنواع الترميز المختلفة وقد تم وضعها جميعًا لنا.
أنت تلاحظ أيضًا أنه لا يبدو تمامًا كإطار بيانات كما هو هنا. يتعين علينا إعادة فهرسة إطار البيانات هذا ، أو هذا المتغير ، في إطار بيانات حتى يعمل بشكل صحيح. سنمضي قدمًا ونعطي إطار بياناتنا ونشغل هذا الكود:
json_counts = json_counts.reset_index()
عندما نقوم بتشغيل هذا ، سترى أن لدينا إطار بيانات. لدينا الفهرس ، وهو المصطلح. ثم لدينا نوع JSON-LD وعدد ذلك. ما زلنا لا نملك الرسم البياني. لا يزال لدينا إطار بيانات آخر. ما الذي يتعين علينا القيام به لتحويل إطار البيانات هذا إلى تصور أو رسم بياني؟ سنستخدم شيئًا يسمى Plotly.
Plotly هي مكتبة أخرى ، تشبه إلى حد بعيد Advertools التي يمكننا استخدامها لإنشاء تصورات ، وعلى وجه التحديد ، سنستخدم Plotly express. أول شيء يتعين علينا القيام به هو تثبيت Plotly ، نمضي قدمًا ونفعل PIPinstallPlotly ، سأقوم بتشغيل هذه الخلية. تم تثبيته بالفعل في ورقة العمل هذه ، لكن لا بأس. كما ترى ، سيخبرنا أنه مثبت بالفعل ، وأنه راضٍ بالفعل. نحن على استعداد للذهاب.
خذ هذا الرمز الذي نسخته للتو من هنا وألصقه مرة أخرى في الزاحف الخاص بنا. لا نحتاج إلى هذا الوسط لأن هذه بيانات لا نستخدمها. نحن نستخدم بياناتنا الخاصة. نحتاج إلى استيراد Plotly express كـ PX ، ونحتاج إلى ربط قاعدة البيانات الجديدة الخاصة بنا هنا من أجل الحصول على المعلومات الصحيحة في مخططنا.
! pip install plotly
import plotly.express as px
fig = px.bar(json_counts, x='index', y='jsonld_@type')
fig.show()
كان يُطلق على إطار البيانات الخاص بنا اسم عدد JSON. في X الخاص بنا ، سنستخدم الفهرس وفي Y سنستخدم نوع JSON. لماذا اخترت هؤلاء؟ الفهرس مكان الكلمات. نريد أن يكون لدينا هؤلاء على X ، ثم العد على JSON-LDtype ، وسيكون هذا هو Y الخاص بنا ، وهذا سيخبرنا عن العدد في كل من هذه الأعمدة. سنمضي قدما ونضع ذلك هنا. بسيط جدا. ثم يظهر الشكل الذي يظهر هذا الرسم البياني. والآن ، لدينا جميع الأنواع المختلفة هنا ، وهنا ، لدينا كميات مختلفة من كل نوع في رسم بياني رائع.
إذا كنت ترغب في مشاركة هذا ، يمكنك تنزيله بصيغة PNG ، وسيقوم Plotly الآن بتنزيله على جهاز الكمبيوتر الخاص بك. يمكنك أن تأخذ هذا وتقول ، "لقد وضعنا هذا الكم الهائل من العلامات على هذه الصفحات العديدة." طريقة رائعة لتصور ذلك بسرعة.
الخطوة 5: تصدير البيانات
ومع ذلك ، ماذا لو أردنا تنزيل كل هذه البيانات والعمل معها ، ربما في أوراق Google أو أي شيء آخر؟ حسنًا ، يمكنك أيضًا القيام بذلك من أجل القيام بذلك. نحتاج فقط إلى استخدام سطر واحد آخر من التعليمات البرمجية ويجب أن نكون على ما يرام. لنفترض أننا سنقوم بتنزيل هذا الجدول هنا مع جميع صفحات موقعنا الإلكتروني ونوع JSON-LD. يمكننا المضي قدمًا إلى هذه الخلية أو أي شخص تريده ، وبعد ذلك سننشئ سطرًا جديدًا من التعليمات البرمجية.
نحتاج إلى استخدام شيء من Google Colab يسمى استيراد الملفات. هذا هو أول شيء سنفعله. بعد ذلك ، سنجد إطار البيانات هذا ، وهو JSON-DF. سنضيف هذا أدناه ونقول .2_CSV ، ثم نعطيه اسمًا. يمكننا تسمية هذا JSON_DF.CSV. بمجرد كتابة هذا الرمز ، تكون قد أنشأت ملف CSV الخاص بك. إذا نظرت هنا إلى مجلدي ، فستشاهد الملف هنا.
من هنا ، يمكنني المضي قدمًا وتنزيله ، أو يمكنني وضع سطر من التعليمات البرمجية هنا يساعدنا في تنزيله بشكل أسرع. يمكنني أن أقول files.download ، ثم أمضي قدمًا وأتصل بهذا الملف ، الذي أنشأته للتو ، وطلبت من Colab فقط تنزيله لي مباشرةً. عندما أقوم بتشغيل هذه الخلية ، سيتم تنزيل هذا الملف وهو هنا لدي. يمكنني المضي قدمًا والنقر فوق فتح ، والآن لدي ملف CSV هذا الذي يمكنني القيام به ما أريد باستخدام أي نوع من أدوات جداول البيانات التي أمتلكها. يمكنني أيضًا رؤية تلك التي ربما تفتقد بعض الترميز.
ها أنت ذا. لقد مضى قدمًا وأنشأنا الزاحف المخصص الخاص بنا. لقد سحبنا بعض البيانات المخصصة. لقد تصورنا تلك البيانات وقمنا بتنزيلها لاستخدامها في برامج أخرى. لقد فعلنا كل هذا ، ولست مبرمج كمبيوتر ، ولا أحاول حتى التظاهر بأنني واحد. كما قلت من قبل ، أنا جيد في النسخ واللصق. أنتم يا رفاق يمكنكم معرفة هذه الأشياء أيضًا.
عندما يكون لديك أسئلة ، هناك دائمًا حلول رائعة. إذا كنت ترغب في تجربة شيء جديد ومختلف ، فإنني أوصيك بشدة باللعب في كولاب. هناك الكثير من الموارد الرائعة هناك. هناك الكثير من الأشخاص الذين يتمتعون بذكاء أكبر مني ، ويقومون بأشياء مذهلة أكثر بكثير تعلمت منها الكثير ، وساعدوني في لعبتي التسويقية ، والبحث ، والزحف ، وغير ذلك الكثير.
إذا كانت لديك أي أسئلة حول ما فعلناه اليوم ، فيرجى التعليق أدناه. سأقوم أيضًا بإعطاء حق الوصول إلى ملف CoLab المحدد هذا وسأشارك خطوة بخطوة الكود الذي استخدمناه على طول الطريق. شكرا جزيلا على المشاهدة. لا تنسى الاشتراك وحتى تسويقي سعيد في المرة القادمة.