Python ile Twitter Verilerini Kazıma [2 API ile]

Yayınlanan: 2020-11-30

İçindekiler

Tanıtım

Twitter gibi sosyal medya platformları, veri kümeleri toplamak için harika havuzlardan biridir. Yeni bir veri bilimi projesi üzerinde çalışmak, makul miktarda veri gerektirir, veri kümesini toplamak kolay bir iş değildir.

Ve Twitter, farklı zihniyetlere ve farklı duygulara sahip insanlardan gelen bir tweet koleksiyonu olduğu için çeşitlendirilmiş bir veri türü sağlar. Önyargısız bu tür bir veri kümesi, yeni bir makine öğrenimi modelinin eğitimi için çok ihtiyaç duyulan bir ön koşuldur.

Başlayalım!

Twitter veri kazıma için 2 API üzerinden geçeceğiz.

  1. berbat
  2. ikiz

berbat

Tweepy API kullanarak verileri kazımak için python kodunu incelemeye başlamadan önce, bir Twitter geliştirici hesabının kimlik bilgilerine ihtiyacımız olduğunu bilmeniz gereken bir nokta var ve bunlara zaten sahipseniz bu çok kolay.

Geliştirici hesabı olmayanlar için buradan başvurabilirsiniz . Ve bir geliştirici hesabına başvurmadan önce bir Twitter hesabınızın olması gerekir. Bir geliştirici hesabına başvurmak kolay bir işlemdir ve uygulama, başvuru nedeni vb. gibi birkaç temel soru sorar. Geliştirici hesabının onaylanması genellikle 2-3 gün sürer.

Geliştirici hesabı için onay aldıktan sonra, "anahtarlar ve belirteçler" bölümünden tüketici API anahtarlarınızı, erişim belirtecinizi ve erişim belirteci sırrını not edin.

Ayrıca, sadece bir haftadan eski olmayan tweetleri sıyırabileceğiniz gibi tweepy için birkaç kısıtlama olduğuna dikkat edilmesi gereken bir nokta var. Ve 15 dakikalık bir zaman diliminde 18000 tweet'e kadar kazıma sınırı.

Harika, şimdi geliştirici hesabından anahtarlarımız ve jetonlarımız olduğuna göre onları yetkilendirelim.

tüketici_key = " tüketici anahtarınız "

tüketici_secret = " tüketici sırrınız "

access_token = " erişim belirteciniz "

access_token_secret = " belirteç sırrınız "

yetkilendirme = tweepy.OAuthHandler(tüketici_anahtar, tüketici_gizli)

yetkilendirme.set_access_token(access_token, access_token_secret)

api = tweepy.API(yetkilendirme,wait_on_rate_limit = True )

Artık kimlik bilgilerimizle yetkilendirdiğimize göre, belirli bir hesabın tweet'lerini kazıyalım. Şimdilik, Bay Sundar Pichai'nin tweet'lerini kazıyalım.

kullanıcı adı = ' sundarpichai '

sayı = 100

dene :

#satır 1

tweets_obj = tweepy.Cursor(api.user_timeline,id = kullanıcı adı).items(sayım)

#hat 2

tweets_list = [[tweet.created_at, tweet.id, tweet.text] tweets_obj içindeki tweet için ]

#line3

tweets_df = pd.DataFrame(tweets_list)

e olarak BaseException hariç :

print ( ' bir şeyler ters gitti ' , str (e))

Yukarıdaki snippet'te satır1, tüm tweet'lerle yinelenebilir bir nesne oluşturur ve "tweets_obj" değişkenine atanır. Yinelenebilir bir nesne oluşturmayı bitirdikten sonra, onu yineleyelim ve tüm verileri çıkaralım.

"created_at", "id", "text" gibi yalnızca birkaç özniteliği ayıklıyoruz ve bunları 2B dizideki her girişe ekliyoruz. Her girişin, kazıdığımız her tweet'in tüm verilerine sahip olduğu yer. Artık her girdi olarak öznitelikleri olan bir 2B dizimiz olduğuna göre, onu “pd.DataFrame()” sözdizimini kullanarak bir veri çerçevesine dönüştürebiliriz.

Bir diziyi bir veri çerçevesine dönüştürmenin nedeni, daha fazla esneklik, önceden tanımlanmış yöntemlerin kullanılabilirliği ve kolay erişim, onu veri bilimi projeleri için tüm veri yapılarından farklı kılar.

Benzer şekilde, belirli bir metin sorgusuna sahip verileri kazımak için bir kodu inceleyelim.

text_query = ' yerel için vokal '

sayı = 100

dene :

#satır 1

tweets_obj = tweepy.Cursor(api.search,q = text_query).items(sayım)

#hat 2

tweets_list = [[tweet.created_at, tweet.id, tweet.text] tweets_obj içindeki tweet için ]

#line3

df = pd.DataFrame(tweets_list)

e olarak BaseException hariç :

print ( ' bir şeyler ters gitti ' , str (e))

Yukarıdaki snippet'te her şey önceki snippet'le aynıdır. Sonunda, “vocal for local” metin sorgusunu içeren tüm tweet'leri içeren bir veri çerçevesi oluşturduk.

Retweet sayısı, favori sayısı vb. gibi daha fazla özellik dahil olmak üzere daha spesifik veya özelleştirilmiş bir veri kazıma arıyorsanız. Sözdizimimizi özelleştirebilir ve tweepy tarafından sağlanan diğer özellikleri çıkarabiliriz. tweepy tarafından sunulan diğer özellikler hakkında daha fazla bilgi için belgelere bakın .

ikiz

Twint API, herhangi bir geliştirici hesabı kimlik bilgisi gerektirmez, tweet'leri herhangi bir yetkilendirme anahtarı olmadan kolayca kazıyabilirsiniz. Ayrıca twint'in tweet sayısı, zaman çerçevesi, kazıma limitleri vb. gibi herhangi bir kısıtlaması yoktur. Twint size sorunsuz bir veri kazıma ve kullanımı kolay bir API sağlar.

Kullanıcı adını kullanan bir kişinin takipçi listesini twint API'den yazdırabiliriz.

t_obj = twint.Config()

t_obj.Username = " sundarpichai "

twint.run.Followers(t_obj)

Yukarıdaki kod parçasında twint.Config() twint API'sini yapılandırır ve işlerin başlamasını sağlar. Ve çalışmamız için bu referansı kullanabileceğimiz bir nesne atadıktan sonra “t_obj.Username” girdiğimiz kullanıcı adını atar. Ve twint.run.Followers, bu kullanıcı adının tüm takipçilerini arar.

Ayrıca kazınmış verileri, tweepy API'ye benzer bir veri çerçevesine kaydedebiliriz.

t_obj.Limit = 100

t_obj.Username = " sundarpichai "

t_obj.Pandas = Doğru

twint.run.Followers(t_obj)

sonuç_df = twint.storage.panda.User_df

Parçacıktaki her şey önceki parçayla hemen hemen aynıdır, yalnızca kazınmış verileri bir veri çerçevesine dönüştüren ekstra bir sözdizimi "twint.storage.panda.User_df" satırı vardır. Sonuç veri çerçevesi, verilen kullanıcı adının takipçilerinin bir listesinden oluşur.

Artık belirli bir kullanıcı adının takipçi verilerini kazımayı gördüğümüze göre, belirli bir hesabın tweet'lerini kazıma kodunu inceleyelim.

t_obj.Search = from:@sundarpichai

t_obj.Store_object = Doğru

t_obj.Limit = 20

twint.run.Arama(t_obj)

tweetler = t.search_tweet_list

yazdır (tweetler)

Yukarıdaki snippet'te, belirli bir kişinin tweet'lerini aramak için yapılandırılmış nesneyi yapıyoruz, “t_obj.Limit” sözdizimini kullanarak kazıma yaparken tweet'lerin sınırını da ayarlayabiliriz. Aramayı çalıştırdıktan sonra, tüm tweet'lerin bir listesini oluşturur ve ihtiyacımıza göre yerel bir değişkene atayabiliriz.

Belirli bir hesabın kazıma bilgilerinin snippet'lerini gördükten sonra, belirli bir anahtar kelimeyi içeren tweet'lerin nasıl kazınacağıyla ilgili hızlı bir sorunuz olabilir. Sorun değil twint'in bunun için bir çözümü var.

t_obj.Search = " veri bilimi "

t_obj.Store_object = Doğru

t_obj.Limit = 100

twint.run.Arama(t_obj)

tweetler = t.search_tweet_list

yazdır (tweetler)

Yukarıdaki snippet, satır1'de tek bir farkla, belirli bir hesaptan tweet'leri sıyırmak için kullanılan snippet ile aynıdır. Ayrıca, rahatlığımıza göre bir veri çerçevesine de dönüştürebiliriz.

twint API hakkında daha fazla bilgi için depolarına ve belgelerine bakın .

Çözüm

Verileri kazımanın önemini anladık. Twitter verilerini kazımak için iki API ve özelliklerini inceledik. Kazınmış verileri gerekli dosya biçimimize dönüştürmek için birkaç yöntem gördük. Artık bu API'lerin farkında olduğunuza göre, veri bilimi projeleriniz için verileri kazımaya başlayın!

upGrad olarak size yardımcı olmaktan mutluluk duyarız ve ayrıca python öğrenerek sahip olabileceğiniz fırsatlar hakkında sizi bilgilendirmek isteriz. Python, en popüler ve gelişmekte olan teknolojilerden ikisi olan Makine Öğrenimi ve Veri Bilimi için yaygın olarak kullanılmaktadır. Python öğrenmek ve ayrıca bu beceriler hakkında bilgi sahibi olmak, alanınızda başarılı olmanızı ve daha iyi kariyer fırsatları elde etmenizi sağlayacaktır.

Bu alanda başarılı olmanız için gereken tüm becerileri size sağlamak için endüstri uzmanları ve en iyi akademik enstitülerle birlikte geliştirilmiş birçok kursumuz var. Python'daki bilginizi kullanmanıza ve kariyer beklentilerinizi artırmanıza yardımcı olabilecek kurslardan bazıları:

Veri Bilimi:

upGrad'ın IIIT-B ile geliştirilen Çevrimiçi Veri Bilimi Programlarına göz atın, bu alana girmek ve bilgi birikiminizle endüstrilerde iz bırakmak için tam teşekküllü bir veri bilimi dersidir.

Masters of Science in Data Science : Liverpool John Moores Üniversitesi ve IIIT-B ile koordineli olarak geliştirilen, dünyanın en iyi üniversitelerinden birinden Veri Bilimi alanında yüksek lisans derecesi almıştır.

Makine öğrenme:

Makine Öğrenimi ve Yapay Zekada İleri Düzey Sertifikasyon : Hindistan'ın en iyi eğitim kurumlarından biri olan IIT madras, bireylerin bu kursla Makine Öğrenimi hakkında tam bilgi sahibi olmaları için ileri Düzey bir Makine Öğrenimi kursu yapmak üzere upGrad ile ortaklık kurdu.

Makine Öğrenimi ve Yapay Zekada Bilim Ustaları : Liverpool John Moores Üniversitesi ve IIIT-B, bireylerin teknolojiyi ayrıntılı olarak öğrenmeleri ve bu teknolojide resmi bir derece almaları için başarılı bir temel oluşturmak için tam bilim yüksek lisans dereceleri sağlamak için upGrad ile birlikte ortaklık kurdu. Bu alanda yol.

Makine Öğrenimi ve Yapay Zekada PG Diploması : IIIT-B ve upGrad, bireylerin Makine Öğrenimi ve Yapay Zeka üzerine 12 aylık bir kurs yapma ve bu kursla bu teknolojiye girme şansı bulmalarına yardımcı olmak için bir araya geldi.

Verilerin kazınması nedir?

Veri kazıma, bir bilgisayar yazılımının başka bir program tarafından oluşturulan bir çıktıdan verileri sıyırdığı bir süreci ifade eder. Web kazıma, farklı web sitelerinden veri veya bilgi toplamak için kullanılan bir veri kazıma türüdür. Web kazımada, bir web sitesinden değerli bilgileri toplamak için bir uygulama kullanılır. Web kazıma programı, HTML (Köprü Metni Aktarım Protokolü) veya bir web tarayıcısı kullanarak WWW'ye (World Wide Web) hızlı ve kolay bir şekilde erişebilir.

Twitter'da veri kazıma neden gerekli?

Sosyal medyadaki veri kazıma, platformlarda bulunan verilerin izlenmesine, değerlendirilmesine ve incelenmesine yardımcı olur. Twitter en popüler platformdur ve Twitter verilerini kazımak, kullanıcıların kullanıcı davranışını, rekabet stratejisini, duygu analizini analiz etmesine ve dünyanın en popüler sosyal kanalında insanların, meslektaşların ve işletmelerin tweet'lerinden neler olup bittiğini takip etmesine yardımcı olur. senin için önemli. Twitter veri kazıma hizmeti, uçtan uca ihtiyaçlarınızı en düşük sürede halleder ve size gerekli verileri verir. Örneğin Twitter, kullanıcıları ve etkinlikleri hakkındaki bilgi miktarını kısıtlamak için yalnızca tarayıcıların API'si aracılığıyla veri toplamasına izin verir.

API'ler nedir?

Uygulama Programlama Arayüzleri, dijital cihazların, yazılım programlarının ve veri sunucularının birbirleriyle iletişim kurmasını sağlayan küçük kod parçalarıdır ve şu anda güvendiğimiz birçok hizmetin hayati omurgasını oluştururlar. Bir bilgisayarı bir insana bağlayan bir kullanıcı arayüzünün aksine, bir API bilgisayarları veya yazılım parçalarını birbirine bağlar. Yazılıma dahil eden bir bilgisayar programcısı dışında hiç kimse (son kullanıcı) tarafından doğrudan kullanım için tasarlanmamıştır. Bir API, genellikle programcıya araç veya hizmet olarak hizmet eden birçok bileşenden oluşur.