• Buradasın

    Python ile İnternetten Veri Toplama ve Veritabanına Kaydetme Eğitimi

    youtube.com/watch?v=Ze9JmT3Gb1Q

    Yapay zekadan makale özeti

    • Bu video, Muhammed Emin Bal ve Mert Çobanoğlu tarafından sunulan bir Python programlama dili eğitim içeriğidir. Muhammed Emin, YouTube'da veri bilimi, Python, web scraping ve MongoDB konularında içerik üretmekte olup, Sakarya'da bilişim sistemleri mühendisliği dördüncü sınıf öğrencisidir.
    • Video, internetten veri toplama ve veritabanına kaydetme konusunu uçtan uca ele almaktadır. İçerik, temel HTML yapısı, HTTP durumları, request ve BeautifulSoup modüllerinin tanıtımı, Amazon İngiltere sitesinden ürün fiyatlarını çekme, linkleri parçalama, title ve fiyat bilgilerini alma, fiyat kontrolü yapma ve veritabanına kaydetme işlemlerini kapsamaktadır.
    • Eğitim, teorik bilgilerin yanı sıra pratik kod örnekleriyle desteklenmekte ve tüm işlemlerin bir main.py dosyası içinde düzenlenmesi önerilmektedir. Ayrıca, MySQL veritabanı oluşturma, tablo tasarımı ve programı 30 saniyede bir otomatik olarak çalıştırma yöntemleri de gösterilmektedir.
    Sunum ve Tanıtım
    • Konuşmacı Muhammed Emin Bal, YouTube'da yaklaşık bir yıldır veri bilimi, Python, web scraping ve MongoDB gibi konularda içerik ürettiğini belirtiyor.
    • Liseyi Kartal'da Mehmet Akif Ersoy Anadolu İmam Hatip Lisesi'nde, üniversite eğitimini Sakarya'da Bilişim Sistemleri Mühendisliği bölümünde sürdürdüğünü ve şu anda dördüncü sınıfta olduğunu söylüyor.
    • Pricing'de yaklaşık dokuz aylık bir deneyim yaşadığı belirtiliyor.
    01:19Program Akışı
    • Programda önce temel HTML yapısı, ardından sık karşılaşılan HTTP durum kodları, request ve BeautifulSoup modülleri tanıtılacak.
    • Örnek uygulama olarak Amazon'un İngiltere sitesinden linkleri bir txt dosyasına yazıp, fiyatları konsol ekranına yazdırıp veritabanına kaydetme işlemi yapılacak.
    • Fiyat belirli bir değerden düşerse konsol ekranında kırmızı renkte yazdırılacak.
    02:41HTML Yapısı
    • HTML, web sayfası oluşturma aşamasında kullanılan standart bir metin işaret dilidir ve web sitesinin temelidir.
    • Web sitesinde görülen tüm içerikler HTML'in body kısmında yer alır.
    • Web scraping yaparken body kısmındaki bilgiler parçalanarak veriler alınır.
    03:20HTTP Durum Kodları
    • HTTP durum kodları, bir web sitesine istek atıldığında site tarafından döndürülen cevaplardır ve toplamda yaklaşık 80 farklı kod vardır.
    • En sık karşılaşılan durum kodları: 200 (başarılı), 403 (erişim engellendi), 404 (sayfa bulunamadı) ve 500 (istek tamamlanamadı).
    • Türkiye'de sahibinden.com gibi sitelerde genellikle 403 kodu alınabilir.
    04:30Request ve BeautifulSoup Modülleri
    • Request modülü, web sitelerine istek göndermek ve web sayfalarındaki içerikleri almak için kullanılır.
    • Request modülü hem GET hem de POST istekleri yapabilir, POST istekleri ile login işlemlerine de müdahale edilebilir.
    • BeautifulSoup, HTML ve XML dosyalarını işlemek için oluşturulmuş güçlü ve hızlı bir kütüphanedir.
    05:56Modüllerin Kurulumu ve Örnek Uygulama
    • Request ve BeautifulSoup modülleri konsol ekranından "pip install requests" ve "pip install beautifulsoup4" komutlarıyla kurulabilir.
    • Örnek uygulamada bir web sitesine istek atılarak içerik alınmaya çalışılıyor.
    • Bazı sitelerde erişim engeli yaşanabilir, bu durumda "user agent" bilgisi verilerek engel aşılabilir.
    10:01Web Scraping Temel İşlemleri
    • "find" ve "find all" fonksiyonları kullanılarak web sayfalarından veri çekilebilir; "find" ilk bulduğu elemanı döndürürken, "find all" tüm elemanları liste halinde döndürür.
    • "strip" fonksiyonu, metinlerin başındaki ve sonundaki boşlukları siler.
    • "replace" fonksiyonu, belirtilen karakterleri başka karakterlerle değiştirir veya tamamen siler.
    12:16Veri Çekme ve Hata Yönetimi
    • Web sayfalarından ürün adı (title) ve fiyatı (price) çekme işlemi gösterilmiştir.
    • Fiyat bulunmayan ürünlerde hata alındığında, "isn't non" kontrolü ile bu durumu yönetebiliriz.
    • Veri çekme işlemlerini fonksiyonel hale getirmek için "def" anahtar kelimesi kullanılarak fonksiyonlar tanımlanabilir.
    14:06Dosya Okuma ve Veri İşleme
    • Python'da "with open" ifadesi kullanılarak metin dosyaları okunabilir.
    • Metin dosyasına ürün linkleri ve istenen fiyatlar eklenebilir.
    • "split" fonksiyonu kullanılarak metin parçalara ayrılabilir ve istenen bilgiler elde edilebilir.
    18:10Fonksiyonlar ve Veri Gösterimi
    • Web sayfalarından çekilen verileri fonksiyonlar kullanarak işleyebiliriz.
    • "print" fonksiyonu kullanılarak veriler ekrana yazdırılabilir.
    • Fonksiyonlar kullanılarak veri çekme işlemleri daha düzenli ve tekrarlanabilir hale getirilebilir.
    19:39Veri Çekme ve Fiyat Kontrolü
    • Program, "red_s.txt" dosyasındaki linkleri okuyarak parçalama işlemi yaparak link ve kontrol edilecek fiyat (check price) bilgilerini alıyor.
    • Get_data ile linkten veriler parçalanıyor, title ve fiyat bilgileri alınıyor.
    • Fiyat kontrolü yapılıyor; eğer kontrol edilen fiyat (check price) mevcut fiyattan büyükse "indirim var" yazdırılıyor.
    21:08Verilerin Kaydedilmesi
    • Aldığımız bilgiler (title, price, zaman) bir sözlük yapısında (info) tutuluyor.
    • Bu sözlük yapısı bir liste (product_list) içinde saklanıyor ve döndürülüyor.
    • Program çalıştırıldığında, liste içinde sözlük halinde title, price ve zaman bilgileri kaydediliyor.
    23:26Fiyat Karşılaştırma Hatası ve Çözümü
    • Fiyat karşılaştırma işlemi çalışmıyor çünkü price ve check price değerleri string olarak tutuluyor.
    • Tip dönüşümü yaparak price ve check price değerleri float'a dönüştürülüyor.
    • Tip dönüşümü yapıldıktan sonra fiyat karşılaştırması doğru şekilde çalışıyor ve indirim durumu belirleniyor.
    24:43Veritabanı Bağlantısı ve Veri Ekleme
    • Veritabanı bağlantısı için bir fonksiyon oluşturuluyor ve lokal veritabanına bağlanılıyor.
    • Veritabanındaki "products" tablosu temizleniyor.
    • Veritabanına veri ekleme işlemi için bir fonksiyon (insert_value) oluşturuluyor.
    26:50Veritabanına Veri Ekleme İşlemi
    • SQL sorgusu oluşturuluyor ve "products" tablosuna title, price, date ve site adı bilgileri ekleniyor.
    • Veritabanına veri ekleme işlemi gerçekleştiriliyor ve commit ile kaydediliyor.
    • Veritabanında verilerin başarıyla eklendiği görülebiliyor.
    29:14Programın Düzenlenmesi
    • Tüm işlemleri daha düzenli ve süreli çalışacak şekilde düzenlemek için fonksiyonlar düzenleniyor.
    • URL kısmından veri okuma yerine txt dosyasından okuma yapılarak veritabanına kaydediliyor.
    • Program daha düzenli çalışması için fonksiyonları çağırma işlemi için "main.py" dosyası oluşturulabilir.
    30:11Veri Çekme ve Veritabanına Kaydetme
    • Program, txt dosyasından linkleri okuyarak ürün bilgilerini (fiyat, ad, zaman ve site) çeker.
    • Çekilen veriler, veritabanına kaydedilir ve indirim durumu ekranda gösterilir.
    • Veritabanına bağlantı kurulup, insert_value fonksiyonu ile ürün bilgileri kaydedilir.
    32:36Konsol Ekranını Renklendirme
    • Konsol ekranını renklendirmek için "colorama" kütüphanesi kullanılır.
    • İndirim durumunu kırmızı renkte göstermek için "print(Fore.RED)" kullanılır.
    • Renk ayarlarını sıfırlamak için "print(Style.RESET_ALL)" komutu kullanılır.
    33:51Otomatik Veri Çekme
    • Veri çekme işlemi manuel yerine otomatikleştirilir.
    • "main" fonksiyonu oluşturulup, "while True" döngüsü ile sürekli çalıştırılır.
    • Veri çekme işlemi belirli aralıklarla (örneğin 30 saniye veya 10 saniye) tekrarlanır.
    37:07Veritabanı Kurulumu
    • MySQL veritabanı için XAMPP programı kullanılır.
    • "product" adında bir tablo oluşturulur ve dört sütun (title, price, date, site) eklenir.
    • Veri tipleri olarak varchar (50 karakter), float, datetime ve varchar (50 karakter) kullanılır.
    40:36Kapanış
    • Konuşmacı, izleyicilere teşekkür eder ve yardım için iletişim bilgilerini paylaşır.
    • Kodların GitHub hesabında paylaşılacağı belirtilir.
    • YouTube kanalına abone olunması önerilir.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor