Python ile Web Sayfası İçerik Karşılaştırma

0 Antworten 2 Aufrufe
·
Teilnehmer
Themenersteller #1
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:

CODE
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:

CODE
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:

CODE
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.

Sie müssen angemeldet sein, um zu antworten.

Benutzer, die dieses Thema gerade ansehen (Gesamt: 1, Mitglieder: 1, Gäste: 0)
Gesamt: 1 (mitglieder: 1, gäste: 0)
0 Zitate ausgewählt