يمكن إستيراد بيانات من تويتر بإستخدام لغة البرمجة بايثون من خلال الخطوات التالية:
اولاً: الحصول على حساب مطور
https://developer.twitter.com/
ثانياً: اعداد تطبيق تويتر (Twitter App)، من خلال الرابط:
ثالثاً: الحصول على مفاتيح ورموز (Keys and tokens) الوصول الى بيانات تويتر، كما في الشكل أدناه:
رابعاً: تحميل وتفعيل حزمة tweepy.
In:
import tweepy
import pandas as pd
خامساً: إعطاء بايثون صلاحية الوصول لبيانات تويتر
وذلك من خلال استحدام المفاتيح والرموز أعلاه كما يلي:
In: access_token = "*****" access_token_secret = "*****" API_key = "*****" API_secret_key = "*****"
حيث تستبدل ***** بالقيم الخاصة بها التي يمكن الحصول عليها من تويتر، ثم نستخدم الكود التالي:
In:
auth = tweepy.OAuthHandler(API_key, API_secret_key)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
سادساً: استيراد البيانات
1. استيراد بيانات تاريخية وذلك من خلال:
- تغريدات التايم لاين لحسابك.
In:
timeline_tweets = api.home_timeline()
حيث يمكن الإطلاع على المتغيرات الموجودة في البيانات من خلال الكود:
In:
for key, value in timeline_tweets[0]._json.items():
if type(value) is dict:
print (key,list(value))
else:
print (key)
وبالتالي يمكن التعامل مع المتغيرات التي تحتاجها مثلاً كما يلي:
In:
variables_set = [[tweet.user.name, tweet.user.location,tweet.text,tweet.retweet_count] for tweet in timeline_tweets]
my_data = pd.DataFrame(data=variables_set, columns=['user', "location","tweets","retweet"])
my_data
- هاشتاق او كلمة مفتاحية.
In: query = "السعودية" language = "ar" twitter_data = api.search(q=query, lang=language) variables_set = [[tweet.user.screen_name, tweet.user.location,tweet.text,tweet.retweet_count] for tweet in twitter_data] my_data = pd.DataFrame(data=variables_set, columns=['user', "location","tweets","retweet"]) my_data
حيث يتم إستبدال “السعودية” بأي هاشتاق أو كلمة مفتاحية.
- التايم لاين لحساب معين.
In: name = "spagov" tweetCount = 20 timeline_tweets = api.user_timeline(id=name, count=tweetCount) variables_set = [[tweet.created_at,tweet.text,tweet.retweet_count] for tweet in timeline_tweets] my_data = pd.DataFrame(data=variables_set, columns=['date and time', "tweets","retweet"]) my_data
حيث يتم إستبدال “spagov” بأي حساب آخر.
2. جمع بيانات تويتر لحظياً
يمكن جمع بيانات تويتر لحظياً وذلك من خلال تعريف الدالة أدناه اولاً:
In: import sys from tweepy import Stream from tweepy.streaming import StreamListener class Listener(StreamListener): def __init__(self, output_file=sys.stdout): super(Listener,self).__init__() self.output_file = output_file def on_status(self, status): print(status.text, file=self.output_file) def on_error(self, status_code): print(status_code) return False
حيث يمكن استبدال “status.text“ بأي متغير اخر من متغيرات بيانات تويتر. ثم بعد ذلك يمكن استخدام الكود التالي:
In: output = open('twitter_data.txt', 'w') listener = Listener(output_file=output) stream = Stream(auth=api.auth, listener=listener) try: print('Start') stream.filter(track=['السعودية']) except KeyboardInterrupt: print("Stopped") finally: stream.disconnect() output.close()
حيث يمكن استبدال كلمة “السعودية“ بأي كلمة مفتاحية أخرى او معرف مستخدم.
ملاحظة: يجب تحديد دليل العمل الذي سوف يحفظ عليه ملف البيانات، مثلاً استخدم:
In: import os os.chdir('Desktop')
مقال رائع جدا ربنا يوفقك
شكرا لك مقال مفيد جدا استمر الله يحفظك ويجزاك خير