"Bu projede Python yazılım dili kullanıldı."
Proje Akışı:
<--> Elindeki dataset etiketleme işlemi için "label.py" dosyasını kullanarak "banking_phishing.txt" adında bir .txt dosyası oluşturuyoruz. Aşağıdaki kod bloğundan da ilgili scripte ulaşabilirsin.
with open('phishing.txt', 'r') as file: #dataset .txt olarak kayıtlı olduğu için belgenin açılması ve satır satır okunması gerekiyor.
urls = file.readlines()
etiketli_veriler = [f"{url.strip()} ,phishing\n" for url in urls] #Etiketleme yapıp bunu diziye kaydet.
#Dikkat! Eğer veri setinin satırları temizlenmediyse önce bunu kullan:
#cleaned_data = [line.strip() for line in data if line.strip() != '']
with open('banking_phishing.txt', 'w') as file: #Hazırlanan verileri yeni bir .txt'ye kaydet.
file.writelines(etiketli_veriler)
<--> Pandas kütüphanesi kullandığımız için ".csv" uzantılı datasete ihtiyaç var. Bunun için elimizdeki .txt uzantılı dataseti "pandas_framework.py" ile .csv dosyasına dönüştürüyoruz. İlgili python bloğuyla verileri çekip şununla:
# DataFrame'i .csv dosyasına kaydet
data.to_csv('mix_labels.csv', index=False)
dosyanı kaydettirmiş olacaksın.
<-----> "machine_learning.py" dosyasındaki kod bloğu ile eğiteceğin modele dair bilgileri düzenleyerek ekle ve eğittin modelin adı ne olsun istiyorsan "model.save('my_model.keras')" satırında 'my_model.keras' kısmına kendi isimlendirmeni yaz!
---> "test_model.py" dosyasındaki kod bloğunu localdeki bilgilerine göre güncelleyerek ve "test_domain = '....' " kısmına denemek istediğin URL'yi girerek modelini test edebilirsin. (Bu noktada space olduğuna dikkat et!)
(Modelin cevabı 0-1 arasında bir double değer olacak.)
---> Modelin çalıştığından da emin olduğumuza göre şimdi API kurarak localden istek atmayı sağlayalım!
---> Bunun için önce Flask ile bir rest ayarlayacaksın, bu noktada "f_restapi.py" scripti seni yönlendirecek.
model = keras.models.load_model('new_model.keras') #Modeline yaptığın isimlendirmeye göre ('...') kısmına belgenin adını yaz.
...
data = pd.read_csv('mix_labels.csv') #Datasetin bulunduğu .csv dosyasının adını kişisel olarak değiştebilirsin.
Dosyada gerekli düzenlemeleri yaptıktan sonra:
- Datasetinin bulunduğu .csv
- Eğitilmiş modelin bulunduğu .keras
- Flask ile yazdığımız API f_restapi.py
... bu üç dosyanın aynı çalışma dizininde olduğundan emin ol! (Aynı dizinde olmazsa hata alırsın)
<---> Şimdi de API'yi çalıştırıp (C:\Users\BEYZANUR\url-detection\case> python f_restapi.py) curl ile istek atacağız.
Python scriptini çalıştırınca böyle bir çıktı alacaksın:
Terminal & CMD çalışır durumdayken bir tane daha aç ve bulunduğun aynı dizine gir. Ardından,
curl -X POST http://127.0.0.1:5000/test -H "Content-Type: application/json" -d "{\"domain\":\"testedeceğinveri\"}"
#API'ye ulaşabileceğimiz iki yöntemden birisi curl diğeri postman'dir. Burada biz curl ile POST atmayı kullandık.
Komutunu çalıştırınca çıktın bu olacak: (vsCode IDE'sinde çalışma hatası alabilirsin, CMD(komut istemi) kullanmanı tavsiye ederim.)