Mövzunu 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:
Bu kod, belirli bir URL'den veri çekerek
Bellek sızıntılarını önlemek için aşağıdaki yöntemleri uygulamak faydalı olacaktır:
Son olarak, cron job'ınızı ayarlamak için terminalde aşağıdaki komutu kullanarak bir cron görevi ekleyebilirsiniz:
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.
Ö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:
- Gereksiz Verileri Serbest Bırakma: Kullanımda olmayan nesneleri serbest bırakmak için
delkomutunu kullanabilir veya atama işlemi ile referansları sıfırlayabilirsiniz.
- Bağlantıları Kapatma: Veritabanı bağlantılarını her işlemden sonra kapatmak, bellek yönetimini kolaylaştırır.
- Profiling Araçları Kullanma: Bellek kullanımını izlemek için
memory-profilerveyaobjgraphgibi 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.