Akademisyenler öncülüğünde matematik/fizik/bilgisayar bilimleri soru cevap platformu
0 beğenilme 0 beğenilmeme
2.7k kez görüntülendi

Python programlama dili ile Twitter'dan bir kullanıcının attığı tweetleri nasıl indirebiliriz?

Veri Bilimi kategorisinde (27 puan) tarafından  | 2.7k kez görüntülendi

2 Cevaplar

0 beğenilme 0 beğenilmeme

Twitter, hesabı gizli olmayan bir kullanıcının son 3200 tweetini indirmemize izin veriyor. İlk önce bir Twitter kullanıcı hesabımız olmalı ve bu hesabımızın bilgilerine  telefon numaramızı eklemeliyiz. Telefon numarası ekli değilse Twitter aşağıdaki adımları atmamıza izin vermeyecek. Bu hesabı kullanarak  

https://apps.twitter.com/app/new

adresinden  yeni bir “uygulama hesabı” açacağız.  Bu uygulamanın ismi daha önce başkası tarafından kullanılmamış (biricik) olmalı. 

Uygulamayı oluşturduktan sonra bize iki şey gerekiyor: Consumer Key (API Key) ve Consumer Secret (API Secret). Bunları  uygulamanın giriş sayfasındaki “Keys and Access Tokens” sekmesinde bulabilirsiniz. Bu sifreler yaklaşık şu şekilde görünecek (aşağıdaki numaralar uydurmadır):


Consumer Key (API Key): 37hjgycjkn14fP8eP8rAqICzT

Consumer Secret (API Secret: ulryubYvzaeHKSrcrkyc89fjknxux7sbs6hoEeAksAz


Artık Python kullanarak istediğimiz kullanıcının (kullanıcının hesabı gizli değilse) tweetlerini indirebiliriz. Bunun için Python için hazırlanmış Twython kütüphanesini kullanacağız. Twython hakkında bilgiye şu adresten ulaşabilirsiniz:

https://twython.readthedocs.io/en/latest/

İlk önce aşağıdaki kodu kullanarak şifrelerimizi Twython’a tanıtacağız:


import twython

from twython import Twython


def initialize():

    APP_KEY = 37hjgycjkn14fP8eP8rAqICzT'

    APP_SECRET = 'ulryubYvzaeHKSrcrkyc89fjknxux7sbs6hoEeAksAz'

    twitter = Twython(APP_KEY, APP_SECRET, oauth_version=2)

    ACCESS_TOKEN = twitter.obtain_access_token()

    return [APP_KEY, ACCESS_TOKEN]


[APP_KEY, ACCESS_TOKEN] = initialize()

twitter = Twython(APP_KEY, access_token=ACCESS_TOKEN


Şimdi ise kullanıcı ismini bildiğimiz herhangi bir kullanıcının (mesela @noamchomskyT)  tweetlerini indirmeye başlayabiliriz:


user_timeline = []

user_name = “noamchomskyT”

user_timeline = twitter.get_user_timeline(screen_name = user_name, count = 100)

  

Twitter’dan tek seferde en fazla 100 tweet isteyebiliyoruz.  Yukarıdaki kod bize kullanıcının son 100 tweetini verecektir.  Twitter  toplamda aynı kullanıcının en fazla son 3200 tweetini veriyor. Bu kodu bir defa daha çalıştırırsak yine aynı 100 tweeti alacağız. Bunun yerine kullanıcının sıradaki 100 tweetini almak üzere son tweetin “id” numarasından daha küçük numaralı tweetleri isteyeceğiz. Aşağıdaki döngü ile maksimum sayıda tweeti alabiliriz: 


a = []

user_timeline = twitter.get_user_timeline(screen_name = user_name, count = 100)

a = user_timeline

if len(a) == 0: 

      print "Could not be reach the timeline of", user_name

      maxid = a[len(a)-1]['id']     

   

for i in range(0, 33):

    user_timeline = twitter.get_user_timeline(screen_name = user_name, max_id = maxid, count = 100)

    a += user_timeline

    maxid = str(int(a[len(a)-1]['id']) - 1)



Yukarıdaki tweetler JSON formatında geliyor. Tweetlerin içeriği için şu adrese bakabilirsiniz:

https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/tweet-object

(27 puan) tarafından 
tarafından düzenlendi
0 beğenilme 0 beğenilmeme
Python'un tweepy kütüphanesini kullanarak tweet indirmeyi anlatan bir yazıyı aşağıdaki linkte bulabilirsiniz:

(27 puan) tarafından 
20,200 soru
21,726 cevap
73,275 yorum
1,887,836 kullanıcı