Herkese merhabalar THT ailesi bugün bs4 kullanarak 4 adımda formda açılan yeni konuları toplayan bir telegram botu yapacaz.


Adım 1 : Gerekli kütüphaneleri import etmek

eğer bu modüller cihazınızda kurulu değilse dert etmeyin aşağıda yükleme kodlarını da yazacam sırasıyla
pip install bs4
pip install bs4pip install cloudscraper
pip install cloudscraperpip install requests
pip install requestspip install json
pip install json. bu projede bs4 kütüphanesi formdan veri kazımak için kullanacağız
. cloudscraper kütüphanesi ile bizi engellemek isteyen yazılımlardan sıyrılacaz
. datetime pythonun zaten yerel kütüphanesi o yüzden yukarıda yazmadım bunla da konuların açılma tarihi eski mi yeni mi vs içi kullanacaz
. request ile de telegram sunucularına selam yollayacaz
. json ile de sizin ana kodda değişiklik yapmadan json dosyalarından yapacağınız değişiklikle yolumuza devam edeceğiz

Adım 2: Değişkenleri atayalım ve json dosyasını okuyalım

a değişkenine atadığımız şey şu anki zamanı gösterir
simdi değişkenine atadığımız şey şu anki zamanı daha detaylı gösterir
with ile başyalan satırdan aşağıya kadar yaptığımız şey ise json dosyasını okumak bu kısım bu kadar

Adım 3 : Telegrama selam yollamak

öncelikle send_msg diye bir fonksiyon oluşturduk ve bu fonksiyona text parametresi ekledik
token ve chat_id değerlerini json dosyasından alıcak şekilde ayarladık
url_req değişkenine ise genel olarak tüm botlar mesaj atarken sürekli iletişim halinde olduğu bir url yi kendi botumuza göre medifiye ederek atadık
results ve alttaki printi ise terminalde çalıştırıken acep bir hata var mıdır diye kontrol etmek için ekledik resulta atadığımız şey url_req a atadığımız url e istek yollamasıdır printi ise de isteğin sonucunu json cinsinden yazdırmak için kullandım
Adım 4 : Botumuzu istediğimiz şekide çalışması için kodlayalım

bu kısımda önce scraperkodlari diye fonksiyon oluşturduk
scraper değişkenine cloudscraper nesnesinin create_scraper fonksiyonunu çağırdık bunu yapmazsak cloudscraper çalışmaz ,o çalışmaz ise foruma istek yollayamayız adam akıllı
url kısmını anlatmama gerek yok görüyorsunuz
r değişkeninde url ye istek yolladık sonucu aldık
soup değişkeninde BeautifulSoup atadık tabi bunun ilk parametresi r değişkeninden istek yolladık ya .content modülü ile içeriği aldık ikinci modülde ise forum rss kullandığı için xml parselemesini istedik.
Xml de genellikle içerikler <item> </item> tagının arasında bulunur o yüzden sonuc diye değişken atadık ve tüm item taglıları aramasını istedik
ondan sonra bir for döngüsü kurduk ve item taglarının toplam sayısı kadar dönmesini istedik peki niye çünkü item tagının arasında title ,link ve pubDate diye alt taglar var ve bunlar sırasıyla her konunun başlığı ,linki ve yayınlanma tarihidir ve her konu için bu değerler lazım tarih_str ,donusum ve sonhal değişkenleri ise tamamıyla forumdaki tarih biçimi ile aynı biçimi tutturmak adına yaptığım işler geriye kalan kısım da bot mesajını ayarlamak ve en sonda fonksiyonumuzu çağırmak var
Buraya kadar okuduysanız gözlerinize sağlık kodların tamamına github linkinden ulaşabilirsiniz:
Bot çalışırken bir görüntü:

Son düzenleme:






