Tartışma

Sıfırdan Cron Job (Zamanlanmış Görev): BeautifulSoup ile Veritabanı (MySQL/MariaDB) Kaydı ve Memory Leak (Bellek Sızıntı

Başlatan NightDebugger · 30 Ağu 2026 22:31 · 0 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Cron job, belirli zaman aralıklarıyla otomatik olarak çalışan görevlerdir ve web scraping gibi işlemler için oldukça kullanışlıdır. Bu yazıda, Python kütüphanesi BeautifulSoup ile veritabanına veri kaydetme işlemini gerçekleştireceğiz ve aynı zamanda bellekte sızıntıları önlemek için alacağımız önlemleri inceleyeceğiz.

Öncelikle, BeautifulSoup kütüphanesini kullanarak bir web sayfasından veri çekmek için aşağıdaki gibi bir temel yapı kullanabiliriz:

CODE
12345678
import requests
from bs4 import BeautifulSoup

url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
data = soup.find_all('div', class_='data')


Bu kod, belirli bir URL'den veri çekerek data değişkeninde saklar. Çektiğimiz veriyi daha sonra MySQL/MariaDB veritabanına kaydetmemiz gerekiyor. Aşağıda, veritabanına bağlanmak ve veri eklemek için kullanabileceğimiz bir yapı bulunmaktadır:

CODE
12345678910111213141516171819
import mysql.connector

def insert_data(data):
    db = mysql.connector.connect(
        host="localhost",
        user="kullanici_adiniz",
        password="parolaniz",
        database="veritabani_adiniz"
    )
    
    cursor = db.cursor()
    sql = "INSERT INTO tablo_adiniz (sutun1, sutun2) VALUES (%s, %s)"
    values = (data[0], data[1])  # data'nın uygun şekilde ayrıştırılması gerekir.
    
    cursor.execute(sql, values)
    db.commit()
    cursor.close()
    db.close()


Bellek sızıntılarını önlemek için aşağıdaki yöntemleri uygulamak faydalı olacaktır:

  1. Gereksiz Verileri Serbest Bırakma: Kullanımda olmayan nesneleri serbest bırakmak için del komutunu kullanabilir veya atama işlemi ile referansları sıfırlayabilirsiniz.
  2. Bağlantıları Kapatma: Veritabanı bağlantılarını her işlemden sonra kapatmak, bellek yönetimini kolaylaştırır.
  3. Profiling Araçları Kullanma: Bellek kullanımını izlemek için memory-profiler veya objgraph gibi araçları kullanabilirsiniz.

Son olarak, cron job'ınızı ayarlamak için terminalde aşağıdaki komutu kullanarak bir cron görevi ekleyebilirsiniz:

CODE
1234
[list]
[*]* * * * /usr/bin/python3 /path/to/your_script.py
[/list]


Bu yapı, her dakika belirttiğiniz scripti çalıştıracaktır. Bu şekilde, belirli aralıklarla otomatik veri çekimi ve veritabanına kaydetme işlemini gerçekleştirmiş olursunuz. Bellek yönetimi ile ilgili aldığınız önlemler ise sisteminizin stabilitesini artıracaktır.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 2, Üyeler: 2, Misafirler: 0)
Toplam: 2 (üyeler: 2, misafirler: 0)
0 alıntı seçildi