Tekrar hoş geldiniz.
Bir şeyler yapmanın zamanı geldi.
Aslında Twitter botumuzla üretken.
Peki burada ne yapabiliriz?
Bir bot yaratmak istiyorum.
Bu bot iyi olacak, takipçilerinize gerçekten iyi davranmak istiyorsunuz ve insanları geri takip etmek istiyorsunuz.
Eğer gerçekten bakarsanız, ben oldukça, oldukça korkunç biriyim.
Takip ettiğim sadece altı kişi var.
Ama tüm takipçilerimi gözden geçirip her birini takip etmek zorunda kalsam, bu 10.000'den fazla tıklama
demek.
Bu oldukça manuel bir iş.
Bunu botumuzla yapabilir miyiz?
Evet, yapabilirsin.
O zaman süper cömert bir bot yapalım.
Yani bu cömert bot her zaman geri takip edecek.
Bunu nasıl inşa edebilirsiniz?
Basitçe döngüye giriyoruz ve takipçi için söylüyoruz.
İçinde.
Ve sonra burada, T. P. bize imleç denen bir şey verir.
Şimdi, bu imleç nedir?
Buradaki belgelere gidersek ve imleci yazarsam.
Gerçek bir imleç eğitimi alacağız.
Burayı okursak, Twitter API'sinde çok fazla sayfalandırma kullandığımızı görürüz.
Yani ister zaman çizelgeleri ister kullanıcı listeleri ya da mesajlar üzerinden gidelim.
Farklı sayfalara tıklamak zorundayız, değil mi?
Genellikle çok sayıda takipçi veya çok sayıda zaman çizelgesi bilgisi vardır.
Böylece imleç, ister tüm bir zaman akışında ister tüm bir takipçi listesinde olsun, Twitter'daki her
şeyi kolay bir şekilde gözden geçirmemizi sağlıyor ve hatta nasıl kullanılacağına dair güzel
bir eğitim bile veriyorlar.
Burada görebilirsiniz, örneğin, bunu biraz daha büyütelim.
Zaman çizelgesindeki tüm öğeleri almak için API kullanıcı zaman çizelgesi öğelerini yapmak için öncülü kullanabileceğimizi görüyoruz.
Yani imleç ile aslında api dot yapabiliriz.
Takipçiler tüm takipçileri kapmak için.
Ve sonra sadece nokta öğeleri yapıyoruz.
Böylece tüm takipçiler arasında döngü yapabiliriz.
Şimdi, bu takipçilerle.
Pekala, onları yazdıralım.
Şimdi takipçileri veya bu durumda takipçiyi yazdıracağım çünkü burada döngü yapıyoruz ve sonra sadece nokta
adını söylüyoruz.
Şimdi, buradaki sorun şu ki, böyle bir şey yaptığımızda, diyelim ki birçok şeyi döngüye
soktuğumuzda, API'ye tekrar tekrar ve tekrar tekrar vuracağız.
Ve Twitter bundan hoşlanmayacak.
Yani, bu basit bir örnek, ancak Twitter'ın ödeme yapmak zorunda olduğu Twitter sunucularına vuran Twitter API'sine
sürekli olarak vurduğumuzda ve dünyadaki herkes Twitter API'sine, diyelim ki Python ile hızlı bir şekilde
tekrar tekrar vurursa, makinelerde bildiğimiz gibi bu gerçekten hızlı çalışır.
Sunuculara aşırı yük binecek ve bu onlara çok pahalıya mal olacak ya da sunucuları çökertecek.
Bu yüzden aslında Twitter API'sini yalnızca birkaç milisaniyede bir talep etmeme izin
verilen hız sınırı adı verilen bir şey uyguluyorlar, böylece sunucuyu çökertmiyor ve aslında bu
Twitter hız sınırıyla çalışmamıza izin veriyor.
Yani buraya oran sınırlayıcı yazarsam.
Aslında bir hata var.
Burada, API yöntemi Twitter'ın hız sınırına ulaşması nedeniyle başarısız olduğunda ortaya çıkan hız sınırı
hatasını görebilirsiniz.
Buradaki B Tweet'i, hız sınırı hatasını kullanarak "Hey, bu hataya ulaşırsak bir şeyler yapalım" dememizi
sağlıyor.
Bu yüzden küçük bir yardımcı fonksiyon oluşturacağım.
Define limit kolu diyeceğim.
Bu yüzden burada limiti ele alacağız ve ona imleci aktaracağız, bu da yine API takipçilerinin tüm verilerini
tutkulu bir şekilde inceleyecek veya gözden geçirecek olan imleçtir.
Ve bu doğruyken diyen vahşi bir döngü yapacağız.
Sadece teslim olmaya devam et.
İmleç.
Sıradaki nokta.
Çünkü imleç bir jeneratördür.
Ancak, burada next'i çağırmaya devam ettiğimizde, ki bu arada, dahili olarak imlecin yaptığı
şey budur, sürekli next'i çağırır ve devam eder.
Takipçilerimizi bitirene kadar devam ediyor.
Ancak.
Eğer durum böyle değilse.
O zaman şöyle diyeceğim.
Onun dışında.
Ve aslında bunu bir tri bloğa saracağız.
Bu yüzden burada try diyeceğim ki bu hatayı yakalayabilelim.
O yüzden doğruyken dene.
Ve sonra.
Onun dışında.
Çaydanlık oranı sınırı hatası alırsak.
Bu durumda, Twitter API'sini duraklatmak ve vurmamak istiyorum, böylece başımız belaya girmez ve nihayet
biraz zaman verdiğimizde ona geri döneriz.
Aslında bunu Python'da zaman adı verilen yerleşik bir modülle yapabiliriz ve zaman burada gerçekten yararlı bir şey yapmamızı
sağlar.
Sleep adında bir şey yapabilirim, bu aslında şunu söyler: Hey, sadece bunu duraklat, her ne oluyorsa, sadece
birkaç milisaniye boyunca bu satırda kal.
Yani 1000 yaparsak, bu 1000 milisaniye veya 1/2 demektir.
Şimdi bir limit tutucumuz var ya da buna limit işleyici diyebiliriz.
Ve bir imleç alan limit işleyiciyi sararsak, yani tüm bu şeyi sarmış oluruz.
Bu şekilde.
Bunu biraz daha büyütelim.
Al bakalım.
Artık kötüye kullanmıyoruz ve baskın sınırına ulaştığımızda hata almak yerine biraz durakladığımızdan
emin olabiliyoruz.
Bakalım işe yaramış mı?
Saklayacağım.
Ve kod parçamızı çalıştırın.
Burayı temizleyelim ve bunu çalıştıralım.
Tamam.
D. C. Şu anda nasıl durakladığını.
Yani hız sınırına ulaşır ulaşmaz duraklıyor.
Ve devam ediyor.
Ve işte oldu.
Sahip olduğum tüm takipçilerin çıktısını alıyor.
Bu çok güzel, değil mi?
Şimdi aslında bunu durduracağım çünkü hala içinden geçiyor.
Ancak şimdi yapabileceğimiz şey, bu kişilerin her birini tek tek takip edebilmek.
Şimdi, benim durumumda, Twitter'da çok fazla değilim, bu yüzden burada rastgele birini takip edelim.
Bu kullanıcıyı buradan takip edelim.
Bu kullanıcının adını şu şekilde kopyalayacağım ve burada eğlenceli bir şey yapacağım.
Eğer diyeceğim.
Takipçi nokta adı bu kişiye eşittir.
O zaman, bu durumda, bu kişiyi takip etmek istiyorum.
O yüzden şöyle diyeceğim.
Onun noktasını takip et.
Takip et, kullanıcıyı takip etmemi sağlar.
Bunu kaydedip kodumu çalıştırırsam, çalışıyor.
Çalışıyor, çalışıyor.
Dediğim gibi, biraz zaman alıyor çünkü tüm listeyi gözden geçirmesi gerekiyor.
Ancak videoyu duraklatacağım ve bu bittiğinde, bunun işe yarayıp yaramadığını göreceğiz.