اليوم في ١٨:٣٥
صاحب الموضوع
Web sayfalarının içeriğini otomatik olarak karşılaştırmak, özellikle içerik güncelliğini takip eden sitelerde, veri kalitesi ve değişim takibi açısından büyük önem taşır. Python, bu alanda güçlü kütüphaneleri ve esnek yapısıyla, kullanıcıların işlemi kolayca gerçekleştirmesine imkan sağlar.
İlk adım, hedef web sayfalarındaki içerikleri elde etmek. Bunun için en yaygın kullanılan kütüphane
requests, ve HTML'den istenilen veriyi çıkarmak için
BeautifulSoup kullanılır. Örneğin:
12345678910111213141516
import requests
from bs4 import BeautifulSoup
url1 = 'https://ornek.com/sayfa1'
url2 = 'https://ornek.com/sayfa2'
response1 = requests.get(url1)
response2 = requests.get(url2)
soup1 = BeautifulSoup(response1.text, 'html.parser')
soup2 = BeautifulSoup(response2.text, 'html.parser')
[b]İçeriğin belirli bölümünü seçmek için uygun CSS seçiciyi kullanmak önemli[/b]
content1 = soup1.select_one('div.content').get_text(strip=True)
content2 = soup2.select_one('div.content').get_text(strip=True)
İkinci aşamada, içeriklerin karşılaştırmasını yapmak. Basitçe, iki metni satır bazında veya kelime bazında karşılaştırabiliriz. Python'un
difflib kütüphanesi, farkları belirgin hale getirmede oldukça kullanışlıdır:
12345678910111213
import difflib
diff = difflib.unified_diff(
content1.splitlines(),
content2.splitlines(),
fromfile='Sayfa 1',
tofile='Sayfa 2',
lineterm=''
)
for line in diff:
print(line)
Bu çıktı, iki içerik arasındaki farkları detaylı biçimde gösterir. Ayrıca, içeriklerin toplam benzerlik oranını hesaplamak için
SequenceMatcher kullanılabilir:
123
matcher = difflib.SequenceMatcher(None, content1, content2)
print(f'Benzerlik oranı: {matcher.ratio() * 100:.2f}%')
Bu yöntemler, içerik değişimlerini otomatik ve detaylı biçimde takip etmeyi sağlar. Aynı zamanda, düzenli aralıklarla scriptleri çalıştırarak, güncellemeleri zaman içinde izlemek mümkündür. Bu teknikler, web siteleri üzerinde içerik güncellemelerini, fiyat değişikliklerini veya metin düzenlemelerini takip etmek için oldukça etkilidir.