كيفية كشط بيانات Youtube باستخدام Python
نشرت: 2019-05-29برز موقع YouTube باعتباره الفائز الواضح عندما يتعلق الأمر بمواقع مشاركة الفيديو ، وبينما يُقال إن قيمته تزيد عن 160 مليار دولار ، فإن عدد الأشخاص الذين يكسبون رزقهم من خلال الموقع ضخم أيضًا. ينضم منشئو المحتوى هؤلاء إلى برنامج شراكة YouTube ومن خلال استثمار المحتوى الخاص بهم يكسبون أموالًا طائلة من خلال الإعلانات.
لماذا كشط البيانات من يوتيوب؟
يمكن أن تكون بيانات YouTube مفيدة لمجموعة واسعة من حالات الاستخدام ، مثل:
1. البحث عن الكلمات الرئيسية الأكثر شعبية
لنفترض أنك أجريت بحثًا للعثور على أفضل مقاطع الفيديو المعروضة على YouTube لبعض الكلمات المعينة. الآن ، إذا قمت بكشط إبداءات الإعجاب وعدم الإعجاب والمشاهدات والعناوين الخاصة بكل مقطع من مقاطع الفيديو هذه ، فستتمكن من إنشاء قائمة بالكلمات الرئيسية التي يمكن أن تؤدي عند إدراجها في عناوين YouTube الخاصة بك إلى تحقيق أرباح أفضل.
2. قارن Hashtags
من خلال مقارنة الإعجابات والمشاهدات على مقاطع الفيديو بعلامات تصنيف معينة ، يمكنك الحصول على فكرة أفضل عن علامات التصنيف التي يجب استخدامها في الفيديو الخاص بك لجعله أكثر شيوعًا ، أو لفهم علامات التصنيف التي تناسب عنوان الفيديو الخاص بك بشكل أفضل.
3. البحث عن القنوات الأكثر شهرة
يمكن أن يساعدك استخراج أفضل مقاطع الفيديو على YouTube في إنشاء رسم بياني للتردد لأسماء القنوات التي تحدث ، مما يتيح لك العثور على أفضل القنوات التي يستمتع بها الأشخاص. سيساعدك هذا بدوره أيضًا على فهم الموضوعات الأكثر شيوعًا بين مشاهدي YouTube.
4. متابعة شعبية القنوات
من خلال استخراج بيانات مقاطع الفيديو التي تم تحميلها حديثًا لقناة معينة على YouTube ، ستتمكن من معرفة ما إذا كانت شعبية القناة تتزايد أو تتناقص ، أو أنها راكدة.
5. تسجيل إبداءات الإعجاب وعدم الإعجاب والمشاهدات على مقاطع الفيديو
يمكنك إنشاء رسم بياني مع الوقت في المحور س والإعجابات أو عدم الإعجاب أو المشاهدات في المحور ص ، عن طريق جمع البيانات من مقاطع الفيديو هذه على فترات زمنية منتظمة.
لنبدأ بالكود:
نظرًا لأننا شرحنا بالفعل عملية التثبيت والتهيئة في المقالات السابقة "كيفية كشط البيانات من" مثل هذه المقالة ، نأمل أن تكون جاهزًا لإنجاز هذه الخطوات.
لتشغيل الكود ، استخدم الأمر python ثم أدخل عنوان URL لفيديو YouTube عندما يُطلب منك ذلك.

انسخ الكود الوارد أدناه في ملف وقم بتسميته باسم youtubeDataExtractor.py (على الرغم من أنه يمكنك بالفعل إعطائه أي اسم ملف ، طالما أنه ينتهي بـ ".py").
[لغة الكود = "بيثون"]
#! / usr / bin / python
# - * - الترميز: utf-8 - * -
طلب استيراد urllib
استيراد urllib.parse
استيراد خطأ urllib
من bs4 استيراد BeautifulSoup
استيراد ssl
استيراد json
استيراد ast
استيراد json
استيراد نظام التشغيل
من طلب استيراد urllib.request ، urlopen
# لتجاهل أخطاء شهادة SSL
ctx = ssl.create_default_context ()
ctx.check_hostname = خطأ
ctx.verify_mode = ssl.CERT_NONE
# مدخلات من المستخدم
url = input ("أدخل عنوان URL لفيديو Youtube-")
# جعل الموقع يعتقد أنك تصل إليه باستخدام متصفح الموزيلا
req = الطلب (url ، headers = {'User-Agent': 'Mozilla / 5.0'})
صفحة الويب = urlopen (req) .read ()
# إنشاء كائن BeautifulSoup من صفحة html لسهولة استخراج البيانات.
soup = BeautifulSoup (صفحة الويب ، "html.parser")
html = soup.prettify ('utf-8')
تفاصيل_الفيديو = {}
تفاصيل أخرى = {}
للامتداد في soup.findAll ('span'، attrs = {'class': 'watch-title'}):
video_details ['TITLE'] = span.text.strip ()
للنص في soup.findAll ('script'، attrs = {'type': 'application / ld + json'}):
channelDesctiption = json.loads (script.text.strip ())
video_details ['CHANNEL_NAME'] = channelDesctiption ['itemListElement'] [0] ['item'] ['name']
لـ div in soup.findAll ('div'، attrs = {'class': 'watch-view-count'}):
video_details ['NUMBER_OF_VIEWS'] = div.text.strip ()
للزر في soup.findAll ('button'، attrs = {'title': 'I like this'}):
video_details ['LIKES'] = button.text.strip ()
للزر في soup.findAll ('button'، attrs = {'title': 'لم يعجبني هذا'}):
video_details ['DISLIKES'] = button.text.strip ()
لـ span in soup.findAll ('span'، attrs = {'class': 'yt-subscription-button-subscriber-count-branded -orizontal yt-subscriber-count'}):
video_details ['NUMBER_OF_SUBSCRIPTIONS'] = span.text.strip ()

علامات التجزئة = []
لامتداد في soup.findAll ('span'، attrs = {'class': 'standalone-collection-شارة-renderer-text'}):
في span.findAll ('a'، attrs = {'class': 'yt-uix-sessionlink'}):
hashtags.append (a.text.strip ())
video_details ['HASH_TAGS'] = علامات التجزئة
مع open ('output_file.html'، 'wb') كملف:
file.write (html)
مع open ('data.json'، 'w'، encoding = 'utf8 ′) كملف خارجي:
json.dump (video_details، outfile، sure_ascii = False، indent = 4)
طباعة ('———- اكتمل استخراج البيانات. تحقق من ملف json .———-')
[/الشفرة]
بمجرد تشغيل الكود ، ستجد JSON تم إنشاؤه في دليلك الحالي ، به الاسم data.json. قمنا بتشغيل كود بعض مقاطع الفيديو الموسيقية الشهيرة وإليك JSONs المرتبطة بها-
1. الرعد بواسطة Imagine Dragons -
[لغة الكود = "بيثون"]
{
"العنوان": "تخيل التنانين - الرعد" ،
"CHANNEL_NAME": "ImagineDragonsVEVO" ،
“NUMBER_OF_VIEWS”: “1،182،556،781 مشاهدة” ،
"LIKES": "6،693،559" ،
"يكره": "337.823" ،
"NUMBER_OF_SUBSCRIPTIONS": "17 مليونًا" ،
"HASH_TAGS": []
}
[/الشفرة]
2. في مشاعرك بواسطة دريك
[لغة الكود = "بيثون"]
{
"TITLE": "Drake - In My Feelings (Lyrics، Audio)" Kiki Do you love me "،
"CHANNEL_NAME": "الوحدة الخاصة" ،
“NUMBER_OF_VIEWS”: “278،121،686 مشاهدة” ،
"مثل": "2407688" ،
"يكره": "114.933" ،
"NUMBER_OF_SUBSCRIPTIONS": "614 كيلوبايت" ،
"HASH_TAGS": [
"#InMyFeelings" ،
"#Drake" ،
"#برج العقرب"
]
}
[/الشفرة]
شرح رمز زاحف اليوتيوب:
كالعادة ، نقوم أولاً بكشط شفرة HTML من صفحة الويب وحفظها في ملف في دليلنا المحلي ، حتى نتمكن من تحليلها والعثور على نقاط البيانات التي يمكن استخراجها بسهولة وتكون ذات قيمة أيضًا. يجب إجراء معظم الدراسة الخاصة بنقاط البيانات في صفحة HTML يدويًا ، من خلال البحث عن كلمات رئيسية أو قيم محددة والعثور على مكان حدوثها.
لقد استخدمنا BeautifulSoup (BS4) لاستخراج البيانات من أماكن محددة في كود HTML-
- عنصر نوع الامتداد الذي يحتوي على فئة "عنوان المشاهدة" هو المكان الذي يمكنك العثور فيه على عنوان الفيديو.
- يحتوي عنصر البرنامج النصي الذي يحتوي على نوع "application / ld + json" على اسم القناة.
- سيساعدك عنصر div مع عدد مرات المشاهدة للفصل في الحصول على عدد مرات مشاهدة مقطع فيديو YouTube المحدد هذا.
- يحتوي عنصر الزر الذي يحمل العنوان "أحب هذا" على عدد الإعجابات على هذا الفيديو المحدد.
- على غرار النقطة أعلاه ، يحتوي عنصر الزر الذي يحمل العنوان "أنا لا أحب هذا" على عدد مرات إبداء عدم الإعجاب في مقطع فيديو معين.
- عنصر الامتداد الذي يحتوي على فئة "yt-subscription-button-subscriber-count-branded -orizontal yt-subscriber-count '' هو العنصر الذي يمكنك من خلاله استخراج عدد المشتركين في القناة التي قامت بتحميل هذا الفيديو المعين.
- يعد العثور على علامات التجزئة المرتبطة بفيديو معين أكثر تعقيدًا قليلاً من نقاط البيانات الأخرى. أولاً ، يجب عليك استخراج جميع الامتدادات باستخدام "نصوص شارة مجموعة مستقلة بذاتها" ، ومن هناك يتعين على المرء استخراج جميع علامات a مع الفئة- "yt-uix-sessionlink". من خلال استخراج النص في جميع علامات a ، في مصفوفة ، ستتمكن من إنشاء قائمة علامات التجزئة. يمكن إضافة هذه المصفوفة إلى الناتج json تحت مفتاح معين يسمى "HASH_TAGS" ، من أجل الحصول على المعلومات بتنسيق منظم في النتيجة النهائية json.
ما هي نقاط البيانات التي يمكنك كشطها من Youtube؟
باستخدام الكود الوارد أعلاه ، يمكنك كشط نقاط بيانات معينة من أي مقطع فيديو على YouTube ، طالما أنك تمتلك عنوان URL الخاص بها. قد يكون حقل علامات التصنيف فقط غائبًا في مقاطع فيديو معينة لأنه ليس حقلاً إلزاميًا في صفحات فيديو YouTube. نقاط البيانات التي يمكن كشطها هي كما يلي:
لقب
أهم نقطة بيانات هي النقطة التي نستخرجها في البداية. يحتوي عنوان الفيديو على الكثير من المعلومات ، وهو ذو أهمية قصوى ، وبدون ذلك لن يكون لجميع نقاط البيانات الأخرى أي معنى على الإطلاق.
اسم القناة
بعد العنوان مباشرة ، يعد اسم القناة مهمًا لربط العنوان بالمنشئ - أي الذي أنشأ المحتوى. في YouTube ، تقترن مقاطع الفيديو بأسماء قنواتها وليس بواسطة منشئيها لأنه في كثير من الحالات ، يعمل أكثر من شخص على مقاطع فيديو لقناة واحدة.
عدد المشاهدات
إن أبسط مقياس لفهم مدى وصول الفيديو هو العثور على عدد المشاهدات التي تلقاها. يعد هذا أيضًا أهم مقياس مرتبط بفيديو YouTube ، وهو يحدد من نواح كثيرة مقدار الإيرادات التي سيحققها منشئ الفيديو.
الإعجابات
الإعجابات على مقطع فيديو YouTube ، هي ببساطة النسبة المئوية للمشاهدين الذين أحبوا الفيديو بدرجة كافية للنقر فعليًا على زر الإعجاب أسفل الفيديو.
يكره
على غرار نقطة البيانات أعلاه ، سيحدد عدد حالات عدم الإعجاب عدد النقرات على زر عدم الإعجاب لمقطع فيديو.
عدد الاشتراكات
في حين أن الإعجابات وعدم الإعجاب والمشاهدات ترسم صورة لشعبية مقطع فيديو واحد على YouTube ، فإن عدد الاشتراكات يعطي فكرة أدق عن مدى شعبية قناة YouTube. بالنسبة لقنوات YouTube ، ليس لدينا مقياس آخر. عدد الاشتراكات هو نقطة البيانات الوحيدة ، وكلما زاد عدد الاشتراكات ، زادت شعبية قناة YouTube المعنية.
HASHTAGS
أصبحت Hashtags وسيلة شائعة لجعل المحتوى الخاص بك قابلاً للبحث في وسائط مختلفة. سواء كانت منشورات على Facebook أو صور Instagram ، يستخدم الأشخاص علامات التصنيف مع أنواع مختلفة من المحتوى عبر الإنترنت اليوم بحيث يمكن ربط أنواع مختلفة من المحتوى معًا. هذا هو السبب في أن "علامات التصنيف الشائعة" أصبحت شيئًا اليوم.
استنتاج
في حين أن الكود المعطى يمكنه فقط استخراج بعض نقاط البيانات المحددة من صفحة فيديو YouTube ، فإن استكشاف صفحات HTML من صفحات YouTube المختلفة يمكن أن يساعدك في العثور على المزيد من نقاط البيانات التي تحدث تحت عناصر HTML مماثلة. لا يحتوي تجريف الويب على قواعد صارمة وسريعة لأن مواقع الويب نفسها تتغير باستمرار. ومن ثم ، فإن تعلم البيانات التي يجب كشطها وكيفية كشطها هو شيء لا يمكن جمعه إلا من التجربة عن طريق كشط صفحات الويب المختلفة التي تحتوي على تنسيقات مختلفة من البيانات.
هل تحتاج إلى مساعدة في استخراج بيانات الويب؟
احصل على بيانات نظيفة وجاهزة للاستخدام من مواقع الويب لتطبيقات الأعمال من خلال خدمات تجريف الويب الخاصة بنا.
أُووبس! لم نتمكن من تحديد النموذج الخاص بك.
إخلاء المسؤولية: الكود المقدم في هذا البرنامج التعليمي هو فقط لأغراض التعلم. نحن لسنا مسؤولين عن كيفية استخدامه ولا نتحمل أي مسؤولية عن أي استخدام ضار لشفرة المصدر.
