استخلاص بيانات Twitter باستخدام Python [مع واجهتي API]

نشرت: 2020-11-30

جدول المحتويات

مقدمة

تعد منصات الوسائط الاجتماعية مثل Twitter أحد المستودعات الرائعة لجمع مجموعات البيانات. يتطلب العمل في مشروع علم بيانات جديد قدرًا معقولاً من البيانات ، وجمع مجموعة البيانات ليس بالمهمة السهلة.

ويوفر تويتر نوعًا متنوعًا من البيانات لأنه عبارة عن مجموعة تغريدات من أشخاص ذوي عقليات مختلفة ومشاعر مختلفة. هذا النوع من مجموعة البيانات غير المتحيزة هو شرط أساسي تشتد الحاجة إليه لتدريب نموذج جديد للتعلم الآلي.

هيا بنا نبدأ!

سنستعرض 2 APIs لكشط بيانات Twitter.

  1. مبتذل
  2. توينت

مبتذل

قبل أن نبدأ في السير عبر كود python لكشط البيانات باستخدام Tweepy API ، هناك نقطة تحتاج إلى معرفتها أننا بحاجة إلى بيانات اعتماد حساب مطور Twitter وهي قطعة من الكعكة إذا كان لديك بالفعل.

بالنسبة للأشخاص الذين ليس لديهم حساب مطور ، يمكنك التقدم للحصول على ذلك هنا . وقبل التقدم للحصول على حساب مطور ، يجب أن يكون لديك حساب Twitter. يعد التقدم للحصول على حساب مطور عملية سهلة ويطرح التطبيق بعض الأسئلة الأساسية مثل سبب التطبيق ، وما إلى ذلك ، وتستغرق الموافقة على حساب المطور بشكل عام 2-3 أيام.

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

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

رائع ، الآن بعد أن أصبح لدينا مفاتيح ورموز من حساب المطور ، فلنسمح لهم بذلك.

Consumer_key = " مفتاح المستهلك الخاص بك "

Consumer_secret = " سر العميل الخاص بك "

access_token = " رمز الوصول الخاص بك "

access_token_secret = " سر الرمز المميز الخاص بك "

التخويل = tweepy.OAuthHandler (Consumer_key، Consumer_secret)

Authorization.set_access_token (access_token، access_token_secret)

api = tweepy.API (التخويل ، wait_on_rate_limit = صحيح )

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

اسم المستخدم = ' sundarpichai '

العد = 100

جرب :

#خط 1

tweets_obj = tweepy.Cursor (api.user_timeline، id = username) .items (count)

#خط 2

tweets_list = [[tweet.created_at، tweet.id، tweet.text] للتغريد في tweets_obj ]

# line3

tweets_df = pd.DataFrame (tweets_list)

باستثناء BaseException كـ e:

print ( " حدث خطأ ما " ، str (e))

في المقتطف أعلاه ، يُنشئ السطر 1 كائنًا قابلًا للتكرار مع جميع التغريدات ويتم تخصيصه لمتغير "tweets_obj". بمجرد أن ننتهي من إنشاء كائن قابل للتكرار ، دعنا نكرره ونستخرج جميع البيانات.

نحن نستخرج بعض السمات فقط مثل "created_at" و "id" و "text" ونلحقها بكل إدخال في مصفوفة ثنائية الأبعاد. حيث يحتوي كل إدخال على جميع البيانات الخاصة بكل تغريدة قمنا بكشطها. الآن بعد أن أصبح لدينا مصفوفة ثنائية الأبعاد تحتوي على سمات مثل كل إدخال ، يمكننا تحويلها إلى إطار بيانات باستخدام بناء الجملة “pd.DataFrame ()”.

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

وبالمثل ، دعنا نتصفح رمزًا لكشط البيانات التي تحتوي على استعلام نصي معين.

text_query = ' صوتي محلي '

العد = 100

جرب :

#خط 1

tweets_obj = tweepy.Cursor (api.search، q = text_query) .items (count)

#خط 2

tweets_list = [[tweet.created_at، tweet.id، tweet.text] للتغريد في tweets_obj ]

# line3

df = pd.DataFrame (tweets_list)

باستثناء BaseException كـ e:

print ( " حدث خطأ ما " ، str (e))

في المقتطف أعلاه ، كل شيء هو نفس المقتطف السابق. أخيرًا ، أنشأنا إطارًا للبيانات يحتوي على جميع التغريدات التي تحتوي على استعلام نصي "صوتي للمحلي".

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

توينت

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

يمكننا طباعة قائمة المتابعين لشخص ما باستخدام اسم المستخدم الخاص به من twint API.

t_obj = twint.Config ()

t_obj.Username = " sundarpichai "

twint.run المتابعون (t_obj)

في المقتطف أعلاه twint.Config () يهيئ واجهة برمجة تطبيقات twint ويجعل الأمور تبدأ. وبعد تعيين كائن يمكننا استخدام هذا المرجع لعملنا ، يقوم "t_obj.Username" بتعيين اسم المستخدم الذي أدخلناه. و twint.run. يقوم المتابعون بالبحث عن جميع المتابعين لاسم المستخدم هذا.

يمكننا أيضًا تخزين البيانات التي تم كشطها في إطار بيانات مشابه لواجهة برمجة تطبيقات tweepy.

t_obj.Limit = 100

t_obj.Username = " sundarpichai "

t_obj.Pandas = صحيح

twint.run المتابعون (t_obj)

result_df = twint.storage.panda.User_df

كل شيء في المقتطف هو تقريبًا نفس المقتطف السابق ، فقط مع سطر إضافي من بناء الجملة “twint.storage.panda.User_df” الذي يحول البيانات المسردة إلى إطار بيانات. يتكون إطار البيانات الناتج من قائمة متابعين لاسم المستخدم المحدد.

الآن بعد أن رأينا إلغاء بيانات المتابعين لاسم مستخدم معين ، دعنا نتصفح الكود لإلغاء تغريدات حساب معين.

t_obj.Search = " من:sundarpichai "

t_obj.Store_object = صحيح

t_obj.Limit = 20

twint.run.Search (t_obj)

تويت = t.search_tweet_list

طباعة (تغريدات)

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

بعد رؤية مقتطفات من معلومات الكشط لحساب معين ، قد يكون لديك سؤال سريع حول كيفية كشط التغريدات التي تحتوي على كلمة رئيسية معينة ؟. ليست مشكلة twint لديها حل لهذا.

t_obj.Search = " علم البيانات "

t_obj.Store_object = صحيح

t_obj.Limit = 100

twint.run.Search (t_obj)

تويت = t.search_tweet_list

طباعة (تغريدات)

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

لمزيد من القراءة على twint API ، ألق نظرة على مستودعهم ووثائقهم .

خاتمة

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

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

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

علم البيانات:

تحقق من برامج upGrad لعلوم البيانات عبر الإنترنت التي تم تطويرها باستخدام IIIT-B ، وهي دورة علوم بيانات كاملة للدخول في هذا المجال وإحداث علامة في الصناعات بمعرفتك.

ماجستير العلوم في علوم البيانات : تم تطويره بالتنسيق مع جامعة Liverpool John Moores University و IIIT-B ، وحصل على درجة الماجستير في علوم البيانات من إحدى أفضل الجامعات في العالم.

التعلم الالي:

شهادة متقدمة في التعلم الآلي والذكاء الاصطناعي: دخلت IIT madras ، وهي واحدة من أفضل المؤسسات التعليمية في الهند ، في شراكة مع upGrad لتقديم دورة متقدمة في التعلم الآلي للأفراد ليكون لديهم معرفة كاملة بالتعلم الآلي من خلال هذه الدورة.

ماجستير العلوم في التعلم الآلي والذكاء الاصطناعي: دخلت جامعة Liverpool John Moores و IIIT-B معًا في شراكة مع upGrad لتوفير درجات ماجستير كاملة في العلوم للأفراد لتعلم التكنولوجيا بالتفصيل والحصول على درجة رسمية في هذه التكنولوجيا لتمهيد الطريق بنجاح المسار في هذا المجال.

دبلوم PG في التعلم الآلي والذكاء الاصطناعي : اجتمع IIIT-B و upGrad لمساعدة الأفراد في الحصول على فرصة للقيام بدورة مدتها 12 شهرًا حول التعلم الآلي والذكاء الاصطناعي والحصول على فرصة لدخول هذه التكنولوجيا من خلال هذه الدورة.

ما هو تجريف البيانات؟

يشير تجريف البيانات إلى عملية يقوم فيها برنامج الكمبيوتر بكشط البيانات من ناتج تم إنشاؤه بواسطة برنامج آخر. تجريف الويب هو نوع من تجريف البيانات الذي يتم استخدامه لجمع البيانات أو المعلومات من مواقع الويب المختلفة. في تجريف الويب ، يتم استخدام أحد التطبيقات لجمع معلومات قيمة من موقع ويب. يمكن لبرنامج كشط الويب الوصول بسرعة وسهولة إلى WWW (شبكة الويب العالمية) باستخدام HTML (بروتوكول نقل النص التشعبي) أو مستعرض ويب.

لماذا يعتبر تجريف البيانات ضروريًا على Twitter؟

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

ما هي واجهات برمجة التطبيقات؟

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