🚀 لقد رفعت CloudSek جولة B1 من السلسلة B1 بقيمة 19 مليون دولار - تعزيز مستقبل الأمن السيبراني التنبؤي

كيف يتم استخدام وحدات Python للزحف على الويب؟

كيف يتم استخدام وحدات Python للزحف على الويب؟

April 7, 2020
Green Alert
Last Update posted on
August 21, 2025
ما وراء المراقبة: الحماية التنبؤية للمخاطر الرقمية باستخدام CloudSek

قم بحماية مؤسستك من التهديدات الخارجية مثل تسرب البيانات وتهديدات العلامة التجارية والتهديدات الناشئة عن الويب المظلم والمزيد. حدد موعدًا لعرض تجريبي اليوم!

Schedule a Demo
Table of Contents
Author(s)
No items found.

 

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

في هذه المقالة، سنتعلم:

  1. ما هو الزحف؟
  2. تطبيقات الزحف
  3. وحدات Python المستخدمة للزحف
  4. حالة الاستخدام: جلب عناوين URL القابلة للتنزيل من YouTube باستخدام برامج الزحف
  5. كيف تعمل برامج زحف CloudSek؟

web crawler

ما هو الزحف؟

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

المراحل الأساسية للزحف:
  1. كشط البيانات من المصدر
  2. تحليل البيانات التي تم جمعها
  3. قم بتنظيف البيانات من أي ضوضاء أو إدخالات مكررة
  4. هيكلة البيانات حسب المتطلبات

 

تطبيقات الزحف

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

  • مقارنة البيانات لتحليل السوق
  • مراقبة تسربات البيانات
  • إعداد مجموعات البيانات لخوارزميات التعلم الآلي
  • معلومات التحقق من الحقائق على وسائل التواصل الاجتماعي

 

وحدات Python المستخدمة للزحف

  • طلبات - السماح لك بإرسال طلبات HTTP إلى صفحات الويب
  • شوربة جميلة - مكتبة Python التي تسترد البيانات من ملفات HTML و XML، وتوزع عناصرها إلى التنسيق المطلوب
  • عنصر السيلينيوم - مجموعة اختبار مفتوحة المصدر تستخدم لتطبيقات الويب. كما يقوم بتنفيذ إجراءات المتصفح لاسترداد البيانات.

 

حالة الاستخدام: جلب عناوين URL القابلة للتنزيل من YouTube باستخدام برامج الزحف

قد يحتوي مقطع فيديو واحد على YouTube على العديد من عناوين URL القابلة للتنزيل، استنادًا إلى: المحتوى والدقة ومعدل البت والنطاق والواقع الافتراضي/ثلاثي الأبعاد. في ما يلي نموذج لرمز API و CLI للحصول على عناوين URL القابلة للتنزيل على YouTube جنبًا إلى جنب مع علامات Itags الخاصة بهم:

 

هيكل المشروع

يوتيوب
|
|---- app.py
|---- cli.py
`---- core.py

سيحتوي المشروع على ثلاثة ملفات:

app.py: لواجهة api، باستخدام إطار صغير للقارورة

cli.py: لواجهة سطر الأوامر، باستخدام argparse وحدة

core.py: يحتوي على جميع الوظائف الأساسية (الشائعة) التي تعمل كوظيفة مساعدة لـ app.py و cli.py.

# youtube/app.py
قارورة استيراد
من استيراد القارورة jsonify، الطلب
جوهر الاستيراد
التطبيق = Flask.flask (__name__)
app.config ["التصحيح"] = صحيح
@app .route ('/'، الطرق = ['GET'])
def get_download_urls ():
إذا لم يكن «عنوان url» موجودًا في request.args:
إرجاع «خطأ: لم يتم توفير حقل عنوان url. يرجى تحديد عنوان URL الخاص بـ youtube.»
عنوان url = request.args ['url']
عناوين url = core.get_download_urls (عنوان url)
إرجاع jsonify (عناوين URL)
تشغيل التطبيق ()

رمز واجهة flask للحصول على عناوين URL القابلة للتنزيل من خلال API.

عنوان URL للطلب - localhost:<port>/? عنوان URL = https://www.youtube.com/watch?v=FIVPlraNgXs

# youtube/cli.py
استيراد arparse
جوهر الاستيراد
my_parser = argparse.argumentParser (الوصف = «احصل على فيديو يوتيوب قابل للتنزيل من عنوان url»)
my_parser.add_argument ('-u'، '--url'، metavar=»، required=true، help= 'youtube url')
args = my_parser.parse_args ()
عناوين url = core.get_download_url (args.url)
طباعة (f'got {len (urls)} عناوين url\n')
بالنسبة للفهرس، يتم تعداد عنوان url (عناوين url، start=1):
طباعة (f' {index}. {url}\n')

مقتطف الشفرة للحصول على عناوين URL قابلة للتنزيل من خلال واجهة سطر الأوامر (باستخدام argparse لتحليل الأوامر مثل الحجج)

واجهة سطر الأوامر - بيثون cli.py -u 'https://www.youtube.com/watch?v=aWPYw7iVBg0'

# youtube/core.py
استيراد جسون
إعادة الاستيراد
طلبات الاستيراد
def get_download_urls (عنوان url):
html = requests.get (عنوان url) .text
RE = re.compile (r'ytplayer [.] التكوين\ s*=\ s* (\ {.*? \})؛ ')
conf = json.loads (إعادة البحث (html) .group (1))
player_response = json.loads (conf ['args'] ['player_response'])
البيانات = استجابة اللاعب ['تدفق البيانات']
إرجاع [{'itag': frmt ['itag']، 'url': frmt ['url']} لـ frmt في البيانات ['AdaptiveFormts']]

هذه هي الوظيفة الأساسية (المشتركة) لكل من واجهة API وواجهة CLI.

سيؤدي تنفيذ هذه الأوامر إلى:

  1. خذ عنوان URL الخاص بـ YouTube كحجة
  2. جمع مصدر الصفحة باستخدام وحدة الطلبات
  3. قم بتحليلها واحصل على بيانات البث
  4. إرجاع كائنات الاستجابة: url و itag

كيف تستخدم عناوين URL هذه؟

  • قم ببناء أداة تنزيل YouTube الخاصة بك (تطبيق الويب)
  • إنشاء واجهة برمجة تطبيقات لتنزيل فيديو YouTube

نتيجة العينة

[{
«العلامة»: 251،
«عنوان URL»: 'https://r2---sn-gwpa-h55k.googlevideo.com/videoplayback?expire=1585225812&ei=9Et8Xs6XNoHK4-EPjfyIiA8&ip=157.46.68.124&id=o-AGeDi3DVtAbmT5GiuGsDU7-NPLk23fOXNnY16gGQcHWu&itag=251&source=youtube&requiressl=yes&mh=Av&mm=31%2C26&mn=sn-gwpa-h55k%2Csn-cvh76ned&ms=au%2Conr&mv=m&mvi=1&pl=18&initcwndbps=112500&vprv=1&mime=audio%2Fwebm&gir=yes&clen=14933951&dur=986.761&lmt=1576518368612802&mt=1585204109&fvip=2&keepalive=yes&fexp=23882514&c=WEB&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig = ADKHGMWRAIGK 4l4vhalwmpvpecmdkhnb2u8um6eyhfz16kggzjfzxzjm9ejvk7 أوقية jfqx7ywbqa3crvkuu86 vCIMV-A & lsparams=MH%2cm%2cm%2cmv%2cmv%2c2cmv%2cv %2cmv%2cv %2cmv%2c2cmv%2cv%2cv %2cmv%2cv%2c2cmv%2cv%2cv%2c2cmv%2cv%2c2cmv%2cv%2cسينيتكWNDBPS&lsig=ABSNJPQWRAIGKBHJYTJV73-C7EMWBVKB-X8_RNB7_XAPZVPFW7wgCMCIHQJ405fq3kR-e_5fv8gmuni0rrlg8T85SLGTQ17w'
}]

ما هي تقنية iTag؟

يمنحنا iTag مزيدًا من التفاصيل حول الفيديو مثل نوع محتوى الفيديو والدقة ومعدل البت والنطاق و VR/3D. يمكن العثور على قائمة شاملة برمز تنسيق YouTube iTags هنا.

كيف تعمل برامج زحف CloudSek؟

 

cloudsek crawlers

 

تقوم منصة مراقبة المخاطر الرقمية الخاصة بـ CloudSek، xviGil، بالبحث في الإنترنت عبر الويب السطحي والويب المظلم والويب العميق، لاكتشاف التهديدات تلقائيًا وتنبيه العملاء. بعد تكوين قائمة الكلمات الرئيسية المقترحة من قبل العملاء، تقوم CloudSek Crawlers بما يلي:

  1. جلب البيانات من مصادر مختلفة على الإنترنت
  2. قم بدفع البيانات المجمعة إلى قائمة انتظار مركزية
  3. تقوم مصنفات ML بتجميع البيانات في تهديدات وغير تهديدات
  4. يتم الإبلاغ عن التهديدات على الفور للعملاء كتنبيهات، عبر xviGil. يتم تجاهل عدم التهديدات ببساطة.

Author

Predict Cyber threats against your organization

Related Posts

حراس العلامة التجارية الخاصة بك: الغوص العميق في خدمات الإزالة في CloudSek

اكتشف كيف تحمي خدمات الإزالة الشاملة من CloudSek علامتك التجارية من التهديدات عبر الإنترنت.

Blog Image
September 5, 2022

كيف تستغل الجهات الفاعلة في مجال التهديد Android Webview

كيف تستغل الجهات الفاعلة في مجال التهديد Android Webview

Blog Image
November 28, 2020

الاستفادة من STIX و TAXII لتحسين استخبارات التهديدات السيبرانية (الجزء 1)

الاستفادة من STIX و TAXII لتحسين استخبارات التهديدات السيبرانية (الجزء 1)

انضم إلى أكثر من 10,000 مشترك

تابع آخر الأخبار حول سلالات البرامج الضارة، وأساليب التصيد الاحتيالي،
مؤشرات التسوية وتسريب البيانات.

Take action now

Secure your organisation with our Award winning Products

CloudSEK Platform is a no-code platform that powers our products with predictive threat analytic capabilities.

مدينة الحندية
Table of Content

 

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

في هذه المقالة، سنتعلم:

  1. ما هو الزحف؟
  2. تطبيقات الزحف
  3. وحدات Python المستخدمة للزحف
  4. حالة الاستخدام: جلب عناوين URL القابلة للتنزيل من YouTube باستخدام برامج الزحف
  5. كيف تعمل برامج زحف CloudSek؟

web crawler

ما هو الزحف؟

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

المراحل الأساسية للزحف:
  1. كشط البيانات من المصدر
  2. تحليل البيانات التي تم جمعها
  3. قم بتنظيف البيانات من أي ضوضاء أو إدخالات مكررة
  4. هيكلة البيانات حسب المتطلبات

 

تطبيقات الزحف

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

  • مقارنة البيانات لتحليل السوق
  • مراقبة تسربات البيانات
  • إعداد مجموعات البيانات لخوارزميات التعلم الآلي
  • معلومات التحقق من الحقائق على وسائل التواصل الاجتماعي

 

وحدات Python المستخدمة للزحف

  • طلبات - السماح لك بإرسال طلبات HTTP إلى صفحات الويب
  • شوربة جميلة - مكتبة Python التي تسترد البيانات من ملفات HTML و XML، وتوزع عناصرها إلى التنسيق المطلوب
  • عنصر السيلينيوم - مجموعة اختبار مفتوحة المصدر تستخدم لتطبيقات الويب. كما يقوم بتنفيذ إجراءات المتصفح لاسترداد البيانات.

 

حالة الاستخدام: جلب عناوين URL القابلة للتنزيل من YouTube باستخدام برامج الزحف

قد يحتوي مقطع فيديو واحد على YouTube على العديد من عناوين URL القابلة للتنزيل، استنادًا إلى: المحتوى والدقة ومعدل البت والنطاق والواقع الافتراضي/ثلاثي الأبعاد. في ما يلي نموذج لرمز API و CLI للحصول على عناوين URL القابلة للتنزيل على YouTube جنبًا إلى جنب مع علامات Itags الخاصة بهم:

 

هيكل المشروع

يوتيوب
|
|---- app.py
|---- cli.py
`---- core.py

سيحتوي المشروع على ثلاثة ملفات:

app.py: لواجهة api، باستخدام إطار صغير للقارورة

cli.py: لواجهة سطر الأوامر، باستخدام argparse وحدة

core.py: يحتوي على جميع الوظائف الأساسية (الشائعة) التي تعمل كوظيفة مساعدة لـ app.py و cli.py.

# youtube/app.py
قارورة استيراد
من استيراد القارورة jsonify، الطلب
جوهر الاستيراد
التطبيق = Flask.flask (__name__)
app.config ["التصحيح"] = صحيح
@app .route ('/'، الطرق = ['GET'])
def get_download_urls ():
إذا لم يكن «عنوان url» موجودًا في request.args:
إرجاع «خطأ: لم يتم توفير حقل عنوان url. يرجى تحديد عنوان URL الخاص بـ youtube.»
عنوان url = request.args ['url']
عناوين url = core.get_download_urls (عنوان url)
إرجاع jsonify (عناوين URL)
تشغيل التطبيق ()

رمز واجهة flask للحصول على عناوين URL القابلة للتنزيل من خلال API.

عنوان URL للطلب - localhost:<port>/? عنوان URL = https://www.youtube.com/watch?v=FIVPlraNgXs

# youtube/cli.py
استيراد arparse
جوهر الاستيراد
my_parser = argparse.argumentParser (الوصف = «احصل على فيديو يوتيوب قابل للتنزيل من عنوان url»)
my_parser.add_argument ('-u'، '--url'، metavar=»، required=true، help= 'youtube url')
args = my_parser.parse_args ()
عناوين url = core.get_download_url (args.url)
طباعة (f'got {len (urls)} عناوين url\n')
بالنسبة للفهرس، يتم تعداد عنوان url (عناوين url، start=1):
طباعة (f' {index}. {url}\n')

مقتطف الشفرة للحصول على عناوين URL قابلة للتنزيل من خلال واجهة سطر الأوامر (باستخدام argparse لتحليل الأوامر مثل الحجج)

واجهة سطر الأوامر - بيثون cli.py -u 'https://www.youtube.com/watch?v=aWPYw7iVBg0'

# youtube/core.py
استيراد جسون
إعادة الاستيراد
طلبات الاستيراد
def get_download_urls (عنوان url):
html = requests.get (عنوان url) .text
RE = re.compile (r'ytplayer [.] التكوين\ s*=\ s* (\ {.*? \})؛ ')
conf = json.loads (إعادة البحث (html) .group (1))
player_response = json.loads (conf ['args'] ['player_response'])
البيانات = استجابة اللاعب ['تدفق البيانات']
إرجاع [{'itag': frmt ['itag']، 'url': frmt ['url']} لـ frmt في البيانات ['AdaptiveFormts']]

هذه هي الوظيفة الأساسية (المشتركة) لكل من واجهة API وواجهة CLI.

سيؤدي تنفيذ هذه الأوامر إلى:

  1. خذ عنوان URL الخاص بـ YouTube كحجة
  2. جمع مصدر الصفحة باستخدام وحدة الطلبات
  3. قم بتحليلها واحصل على بيانات البث
  4. إرجاع كائنات الاستجابة: url و itag

كيف تستخدم عناوين URL هذه؟

  • قم ببناء أداة تنزيل YouTube الخاصة بك (تطبيق الويب)
  • إنشاء واجهة برمجة تطبيقات لتنزيل فيديو YouTube

نتيجة العينة

[{
«العلامة»: 251،
«عنوان URL»: 'https://r2---sn-gwpa-h55k.googlevideo.com/videoplayback?expire=1585225812&ei=9Et8Xs6XNoHK4-EPjfyIiA8&ip=157.46.68.124&id=o-AGeDi3DVtAbmT5GiuGsDU7-NPLk23fOXNnY16gGQcHWu&itag=251&source=youtube&requiressl=yes&mh=Av&mm=31%2C26&mn=sn-gwpa-h55k%2Csn-cvh76ned&ms=au%2Conr&mv=m&mvi=1&pl=18&initcwndbps=112500&vprv=1&mime=audio%2Fwebm&gir=yes&clen=14933951&dur=986.761&lmt=1576518368612802&mt=1585204109&fvip=2&keepalive=yes&fexp=23882514&c=WEB&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig = ADKHGMWRAIGK 4l4vhalwmpvpecmdkhnb2u8um6eyhfz16kggzjfzxzjm9ejvk7 أوقية jfqx7ywbqa3crvkuu86 vCIMV-A & lsparams=MH%2cm%2cm%2cmv%2cmv%2c2cmv%2cv %2cmv%2cv %2cmv%2c2cmv%2cv%2cv %2cmv%2cv%2c2cmv%2cv%2cv%2c2cmv%2cv%2c2cmv%2cv%2cسينيتكWNDBPS&lsig=ABSNJPQWRAIGKBHJYTJV73-C7EMWBVKB-X8_RNB7_XAPZVPFW7wgCMCIHQJ405fq3kR-e_5fv8gmuni0rrlg8T85SLGTQ17w'
}]

ما هي تقنية iTag؟

يمنحنا iTag مزيدًا من التفاصيل حول الفيديو مثل نوع محتوى الفيديو والدقة ومعدل البت والنطاق و VR/3D. يمكن العثور على قائمة شاملة برمز تنسيق YouTube iTags هنا.

كيف تعمل برامج زحف CloudSek؟

 

cloudsek crawlers

 

تقوم منصة مراقبة المخاطر الرقمية الخاصة بـ CloudSek، xviGil، بالبحث في الإنترنت عبر الويب السطحي والويب المظلم والويب العميق، لاكتشاف التهديدات تلقائيًا وتنبيه العملاء. بعد تكوين قائمة الكلمات الرئيسية المقترحة من قبل العملاء، تقوم CloudSek Crawlers بما يلي:

  1. جلب البيانات من مصادر مختلفة على الإنترنت
  2. قم بدفع البيانات المجمعة إلى قائمة انتظار مركزية
  3. تقوم مصنفات ML بتجميع البيانات في تهديدات وغير تهديدات
  4. يتم الإبلاغ عن التهديدات على الفور للعملاء كتنبيهات، عبر xviGil. يتم تجاهل عدم التهديدات ببساطة.

Related Blogs