Hoşgeldin Sivil

.
Forum Yöneticisi: Administrator | Bu Bölümde Yetkili Tüm Yöneticiler? | Bu konuyu okuyanlar?

 Forum Ana Sayfa
   Python

   
 Kurallar    Aktif Konular    PM    Kayıt Ol     Giriş Yap  
» Python | API Coding | Web Scraping
 Konu Kalitesi %15
Oy Ver   
 
Gönderilme Tarihi: 02 Mayıs 2022 00:39:30 - Kayıtlı IP
  Mesajı İhbar Et!     

Dağıztanlı08

Albay

İstanbul
23 Şubat 2022
51 Mesaj

Durum: Complicated


Aktiflik
Seviye
Deneyim
Moderatör

Görev Org./Grup :

Lojistik




Herkese Merhabalar.

Bu konuda sizlere şu başlıklardan bahsedeceğim.

(*)API Nedir ?
(*)Web Scraping Nedir ?
(*)API Yazılırken Nelere Dikkat Edilmeli ?
(*)Sıfırdan API Nasıl Yazılır ?

API Nedir ?
API(Application Programming Interface) yani Programlama arayüzü olarak adlandırılmaktadır.
Genel olarak bahsedersek bir yazılım üzerinde başka bir yazılımın özelliklerinin kullanılabilmesini sağlayan arayüz olarak bahsedebiliriz. Birçok programda API desteği kullanılmaktadır.




Web Scraping Nedir ?
Web kazıma olarakta geçmektedir. Web sitelerinden bilgi alabilmemizi sağlayan bir tekniktir.
Birçok alanda bu teknikten yararlanılmaktadır. Örnek vermek gerekirse; hava durumu verileri, fiyat karşılaştırma ve birçok örnek…

API Yazılırken Nelere Dikkat Edilmeli ?
Eğer bir API yazacaksak API yazacağımız uygulamanın bütün özelliklerine yazdığımız API sayesinde erişebilmeliyiz. API yazacağımız uygulamanın ne üstüne olduğuda önem taşımaktadır.
Örneğin bir web sitesinin özelliklerinin kullanılacağı API yazacaksak bu web sitesinin trafiğini dinlemeye almalıyız. Eğer trafikte istediğimiz bütün POST-GET paketlerine ulaşabiliyorsak API tabanını bunun üzerine kurabiliriz. Erişemiyorsak WEB-SCRAPING teknolojisini kullanabiliriz.
Ben konu içerisinde WEB-SCRAPING ile nasıl API yazılacağını göstereceğim. Aynı şekilde trafiği dinleyerekte bunu sağlayabiliriz.

Sıfırdan API Nasıl Yazılır ?
Bilgisayar Teknolojileri bildiğiniz gibi oldukça İngilizce gerektiren bir meslek. Bundan ötürü İngilizce ile çok iç içe olmalıyız. Doküman okurken bilmediğimiz İngilizce kelimeler çıkabiliyor imdadına yetişen bir site “https://tureng.com/tr/turkce-ingilizce” herkesin bildiğini düşünüyorum. Eğer programımızda İngilizce çeviri ile uğraşacaksak Python’un bize sağlamış olduğu tek API Google-Translate. Bildiğiniz gibi Google-Translate kelimenin bütün anlamlarını vermiyor. Bir kelimenin bazen 50 anlamı dahi
olabiliyor. Bende konsol ekranı üzerinden TURENG sitesinin yararını nasıl kullanabiliriz diye düşündükten sonra bu projeyi çıkarma kararı aldım. TURENG sitesinin özelliklerini kullanabileceğimiz bir API. Temel mantık site üzerinden verileri çekmek. Peki verileri nasıl çekeceğiz ?
Bunun için TURENG sitesine gidip istediğimiz veriler nerede saklı ona bakmalıyız.



Burada görüldüğü gibi çevirme işlemini kullanabilmek için her biri ayrı kategori haline getirilmiş."turke-ingilizce" siteden content çekerken istek yollayacağımız url üzerine bu kategorileri tek tek belirtmeliyiz. Kodu bir inceleyelim.



İstek yollayacağımız url içerisinde ihtiyacımız olacağı için görüldüğü gibi bir dict içerisine değerleri belirtmiş bulunduk.



Nesne içerisine language_ değeri verildiği zaman gidip self.__language sözlüğü içerisinden veriyi alıp url’yi o şekilde ayarladığına dikkat etmeliyiz. Aksi taktirde istediğimiz contenti çekemezdik.



Burada istenilen kelimenin aratma işlemini yaptıktan sonra "Ayırtmak" kelimesine sağ tık yapıp ,
"Öğeyi Denetle" diyoruz.



Burada görüldüğü gibi istediğimiz elemanlar “Table id = englishResultsTable”altında td class = “tr ts”
Altında tutuluyor. Yani programımızda sitenin content bölümünü çektiğimizde buraları özel olarak parse ederek istediğimiz verileri alabiliriz. O zaman kodu bir inceleyelim.



Görüldüğü gibi yukarıdaki fonksiyonlar aracılığıyla web site contentini çektikten sonra "find_all()" fonksiyonu yardımı ile Tableetiketine sahip ve id değeri = englishResultsTable olan içeriği bul diyoruz. Daha sonra gelen veriden tekrar 'td' etiketine sahipclass = “tr ts” olan içeriği bul diyoruz. Bunu da bulduktan sonra son olarak bunun altındaki tüm "td" etiketini çektiriyoruz. Bu sayede istediğimiz verilere ulaşmış olduk. Daha sonra "self.__setdict()" yapısı çağırılıyor. Çağırılan fonksiyonun amacı ise dönen verileri güzel bir çıktı haline getirebilmesi.



Görüldüğü gibi dönen verileri bir "DİCT" içerisine atıyor.



Burada görmüş olduğunuz diğer fonkisyonlar ise siteye istek atmak için, hangi dil desteğini sağladığını göstermek için, oluşturulan sözlüğü döndürmek için, hangi kelimenin çevirileceğini göstermek için oluşturulmuş fonksiyonlardır. Şimdi birkaç deneme yapalım.



Görüldüğü gibi “from Tureng_API import *” şeklinde modülümüzü programımızın içine dahil ettik.
(Bunun bir modül olduğunu unutmamalıyız.)

Daha sonra “Tureng_Translate” nesnesini tanımlayıp gerekli bütün parametreleri programa verdik.
(0 değeri nesnenin daha websitesine gidip verileri çekmesine gerek olmadığını belirtiyor.)



Nesnemizin özelliklerini kullanarak gerekli bilgileri istedik. Çıktıya bakalım.



Görüldüğü gibi tam olarak bizim istediğimiz gibi. Daha sonrasında programı çalıştırıp gerekli bilgileri bizim için çekmiş mi ? Kontrol edelim.



Gördüğünüz gibi bütün kelimenin anlamlarını sözlüğün içerisinde bize döndürdü. Program sadece İngilizce-Türkçe , Türkçe-İngilizce desteği vermiyor.
Tureng’in bize sağlamış olduğu bütün dil desteklerini sağlıyor.
Fakat yukarıda gösterdiğim tablo işlemlerinde diğer diller için gereken table değerleri farklı onlar için ayrı bir fonksiyon daha oluşturduk o fonksiyonda burada;



Yaptğımız işlem aynı sadece "tr ts" yerine "en tm" etiketlerini çekiyoruz. Son olarak "Almanca-İngilizce" deneyeceğim.



Görüldüğü gibi parametreleri değiştirdiğimize dikkat edin. "Buch" ve "DE-EN" şimdi çıktımızı inceleyelim.



Sözlüğümüz başarılı bir şekilde çalıştı. Birde sitedeki değerlerle eşit mi ? Bir bakalım.



Ve tamamen doğru 😊.

Programın çalışma mantığını ve nasıl yazıldığını açıklamaya çalıştım. Bu bir modül bir tool değil. Bunu işlevsel hale getirmek size kalmış. Eğer aklınızda İngilizce çeviri ile alakalı bir program varsa bunu kullanabilirsiniz. Google-Translate dediğim gibi ayrıntılı bir bilgi çıkarmayacaktır. Bundan dolayı böyle bir API yazmak istedim.

Kodlara ulaşmak için:
TIKLA

Eğer kodlarda anlamadığınız bir nokta olursa sorularınızı bekliyorum…

       
     
 
 
Gönderilme Tarihi: 17 Mayıs 2022 14:28:55 - Kayıtlı IP
  Mesajı İhbar Et!     

Börteçine

Kuvvet Komutanı

Tarafından
17 Ocak 2022
63 Mesaj

Durum: KETUM


Aktiflik
Seviye
Deneyim
Member Manager

Görev Org./Grup :

Lojistik


Emeğine sağlık. Modülün onayını da alalım.


___________________________________________
Koca Hestiy Aya Bedenem{!}
       
  Errorle Mücadele , Lojistik Destek (TIM LiDERi) , Yöneteam , Trial Mods (TIM LiDERi) , C-WarZ ,    
 
 
Gönderilme Tarihi: 17 Mayıs 2022 15:20:03 - Kayıtlı IP
  Mesajı İhbar Et!     

Aleph

General

14 Aralık 2021
149 Mesaj




Aktiflik
Seviye
Deneyim
Member Manager

Görev Org./Grup :

Sosyal Medya

Uzmanlık Alanları:
SMM

eline sağlık


___________________________________________
Sabır ver, asil asker hainlere göğüs ger.
       
  Yöneteam , Yeni Üyeler TIM (TIM LiDERi) ,    
 
 
Gönderilme Tarihi: 17 Mayıs 2022 15:23:00 - Kayıtlı IP
  Mesajı İhbar Et!     

EmreZeriX

Albay

/public_html
14 Aralık 2021
104 Mesaj

Durum: Yorgun


Aktiflik
Seviye
Deneyim
Moderatör

Görev Org./Grup :

Sosyal Medya


Lojistik

Uzmanlık Alanları:
BD Script
AI Researcher

Bu modül birçok projede harika işler yapacağına eminim ellerine sağlık +10


___________________________________________

          
     
 
 
Gönderilme Tarihi: 17 Mayıs 2022 16:04:46 - Kayıtlı IP
  Mesajı İhbar Et!     

s27anonym
0x27 | Akıncı

Yüzbaşı

İstanbul
20 Mart 2022
27 Mesaj

Durum: Urfalıyam


Aktiflik
Seviye
Deneyim



Elinize sağlık hocam


___________________________________________
Cyber-Warrior TIM
          
  Lojistik Destek ,    
 
 
Gönderilme Tarihi: 17 Mayıs 2022 20:16:33 - Kayıtlı IP
  Mesajı İhbar Et!     

HAYALET

Albay

03 Ocak 2022
254 Mesaj

Durum: Beyaz Ve Sen


Aktiflik
Seviye
Deneyim
Moderatör

Görev Org./Grup :

Sosyal Medya


Lojistik


eline sağlık kardeşim


___________________________________________
Oraleti sevmemiz portakala olan düşkünlüğümüzden değil biz ezilenin yanındayız.
       
     
 
 
Gönderilme Tarihi: 30 Eylül 2023 13:30:52 - Kayıtlı IP
  Mesajı İhbar Et!     

Börteçine

Kuvvet Komutanı

Tarafından
17 Ocak 2022
63 Mesaj

Durum: KETUM


Aktiflik
Seviye
Deneyim
Member Manager

Görev Org./Grup :

Lojistik


/UP


___________________________________________
Koca Hestiy Aya Bedenem{!}
       
  Errorle Mücadele , Lojistik Destek (TIM LiDERi) , Yöneteam , Trial Mods (TIM LiDERi) , C-WarZ ,    
 
 
Git:
  Arkadaşına yolla

Sayfa Yüklenme Süresi: 0.2951


 

İçerik Yöneticisi : AKTIF / Veriler Aktarıldı...
IP Adresiniz : 3.21.154.20 Güvenlik Nedeniyle Kayıt Altındadır.



Uzun yoldan geldik, uzun yola devam...

   


Reklam vermek için tıklayın

Forum Kuralları | Üye Olmak İçin | CyberAkademi | Operasyonel TİM'ler
CYBERAKADEMI ~ 2021