Konya'da tıbbi malzeme satan bir firmanın satış müdürü her sabah önce bir büyükşehir belediyesinin ihale sayfasını, sonra iki hastanenin satın alma duyurularını yeniliyor. Bir cuma saat 17.40'ta yeni bir duyuru yayımlanıyor ve o bunu salı günü görüyor. Teklif hazırlamaya kalan süre yetmiyor. Aynı hafta hukuk ekibi, bir yazılım tedarikçisinin kullanım şartlarını sessizce değiştirdiğini ancak yeni fatura geldiğinde fark ediyor.
İki sorunun çözümü aynı: sayfayı izleyen ve sayfa değiştiğinde size yazan bir araç. Bu yazıda izlemenin nasıl çalıştığını, hangi karşılaştırma yöntemini seçeceğinizi, yanlış alarmları nasıl durduracağınızı, ne sıklıkla kontrol etmeniz gerektiğini, izleyicinin nerede çalışacağını ve ne zaman proxy eklemeniz gerektiğini anlatıyoruz. Fiyat ve stok takibinin ayrı bir rehberi var: E-Ticarette Rakip Fiyat Takibi Nasıl Yapılır?
Web sitesi değişiklik takibi nedir, ne işe yarar?
Web sitesi değişiklik takibi, bir programın sayfayı belirli aralıklarla yüklemesi, bir kopyasını saklaması ve yeni kopya öncekinden farklıysa size haber vermesidir. Sayfayı elle yenileme alışkanlığının yerini alır; elle yenileme de tam cuma akşamı ya da bayram tatilinde aksar.
İzlemeye değer sayfalar çoğu zaman fiyat sayfaları değildir. Kamuya satış yapan bir şirket ihale duyurularını, hukuk ekibi tedarikçinin kullanım şartlarını, insan kaynakları bir iş ilanı sitesini, bilgi işlem ekibi de yazılımların sürüm notlarını izler. Bir sitenin açık mı kapalı mı olduğunu kontrol etmek ise ayrı bir iştir ve uptime izleme diye geçer. Bu yazı sayfanın açılıp açılmadığıyla değil, sayfada ne yazdığıyla ilgilidir.
Web sitesi değişiklik takibi adım adım nasıl çalışır?
Her araç, her kontrolde aynı yedi adımı izler:
- Adres ve kontrol konumu. URL'yi girersiniz. Bazı araçlar kontrolün hangi ülkeden yapılacağını seçmenize de izin verir.
- Sayfanın yüklenmesi. Düz bir HTTP isteği sayfanın HTML'ini indirir. İçeriğini JavaScript ile oluşturan sayfalar için gerçek bir tarayıcı gerekir; yoksa izleyici içi boş bir sayfa iskeleti görür (Statik ve Dinamik Sayfalar).
- İzlenecek bölümün seçilmesi. Duyuru tablosu gibi tek bir bölümü gösterirsiniz. Kodsuz araçlarda bölümün üzerine tıklamanız yeter; arka planda bu seçim bir CSS seçiciye (selector) ya da XPath ifadesine dönüşür (CSS Selector ve XPath).
- Metnin temizlenmesi. Fazla boşluklar kırpılır. Kural koyduysanız tarihler ve sayaçlar da atılır.
- Karşılaştırma. Temizlenen metin önceki kopyayla satır satır karşılaştırılır.
- Filtreleme. Kurallar, farkın bir uyarıyı hak edip etmediğine karar verir. Örneğin yalnız eklenen satırlar ya da belirli bir kelimeyi içeren satırlar uyarı üretir.
- Uyarı ve kayıt. Araç farkı size gönderir ve yeni kopyayı geçmişine ekler.
İkinci adım daha hafif de yapılabilir. Sunucu bir sayfayı ETag değeriyle ya da Last-Modified tarihiyle etiketleyebilir. Bu değerleri isteğinde geri gönderen istemci aslında "sayfa değişti mi?" diye sorar; değişmediyse sunucu sayfanın gövdesini göndermeden 304 Not Modified yanıtı verir. MDN koşullu istekleri anlatıyor, kurallar ise RFC 9110 içinde.
İzleyici kurmadan önce iki kısa yola bakın: site sunuyorsa RSS beslemesi ve hangi sayfaların değiştiğini gösteren sitemap lastmod tarihleri (Sitemap Nasıl Bulunur?).
Metin, öğe ve görsel karşılaştırma arasındaki fark nedir?
Metin karşılaştırması sayfadaki kelimelere satır satır bakar. En az gürültüyü bu yöntem üretir ve uyarıda kolay okunur. Tasarım değişikliklerini ise kaçırır: yeni bir banner görseli sayfadaki hiçbir metni değiştirmez.
Öğe karşılaştırması sayfanın tek bir bölümünü, örneğin açık ihaleler listesini izler ve gerisini yok sayar. Zayıf noktası seçicidir. Site yeniden tasarlandığında öğe yeni bir ad alabilir ve izleyici aradığı yerde hiçbir şey bulamaz.
Görsel karşılaştırma ekran görüntülerini piksel piksel karşılaştırır. Yeni bir logoyu ya da değişen bir yerleşimi yakalar, ama en çok gürültü üreten seçenektir ve her zaman gerçek bir tarayıcı ister. Bu yüzden siteye en fazla yükü de o bindirir.
Kullanım şartları sayfasına metin, ihale listesine öğe, kampanya banner'ına görsel karşılaştırma uyar. Bir tedarikçi "fesih için 30 gün önceden bildirim" ifadesini "15 gün" yaparsa metin karşılaştırması size tam olarak o tek satırı gösterir.
Bulut servisi mi, tarayıcı eklentisi mi, kendi sunucunuz mu?
"Visualping alternatifi" araması çoğu zaman aslında izleyicinin nerede çalışacağı sorusudur. Aşağıdaki bilgiler Eylül 2026'da kontrol edildi; paketler değişebilir.
| Yol | Örnek | Nerede çalışır | Site hangi IP'yi görür | En kısa aralık | Proxy | Uygun olduğu durum |
|---|---|---|---|---|---|---|
| Tarayıcı eklentisi | Distill yerel izleyici (local monitor) | Açık tuttuğunuz tarayıcınız | Kendi IP'niz | 5 saniye | Desteklenmez | Tek kişi, birkaç sayfa |
| Bulut servisi | Visualping, Distill bulut | Servisin sunucuları | Servisin IP'si (Visualping'de varsayılan California) | Üst paketlerde 2 dakika | Servisin konum listesinden | Hiçbir şey kurmak istemeyen ekipler |
| Kendi sunucunuz | Docker'da changedetection.io | Sizin sunucunuz | Sunucunun IP'si ya da proxy'niz | Siz belirlersiniz | İzleyici başına, proxies.json içinde | Çok sayfa, şirket içinde kalan veri, BT desteği |
Distill'in iki modu var. Dokümantasyonuna göre yerel izleyiciler kontrolü tarayıcınızda yapar, 5 saniyede bir çalışabilir ve proxy desteklemez. Bulut izleyiciler ise bilgisayarınız kapalıyken de çalışmaya devam eder ve proxy destekler.
Visualping bir bulut servisidir. Varsayılan olarak ABD'den (California) bir IP ile kontrol yapar; yardım merkezinde anlatıldığı gibi her iş için "Check from" menüsünden başka bir konum seçilebilir. Eylül 2026'da Türkiye bu listede yoktu. Sayfanın Türkiye'deki ziyaretçilere görünen hâlini izlemeniz gerekiyorsa bu önemli bir eksik.
changedetection.io, Apache 2.0 lisansıyla dağıtılan açık kaynak bir yazılımdır. Docker ile, yani uygulamayı hazır bir kapsayıcı (container) içinde çalıştıran araçla kurulur; tarayıcıda 5000 numaralı porttan açılır ve bütün kopyalar kendi makinenizde kalır. 0.60.7 sürümü 17 Eylül 2026'da çıktı; kurulum komutu proje deposunda var. Aynı ekip barındırılan (hosted) bir sürüm de satıyor.
Tarih, reklam ve oturum kodlarından gelen yanlış alarmlar nasıl durdurulur?
Her kontrolde uyarı veren bir izleyici kısa sürede görmezden gelinir. Gürültü genellikle şunlardan gelir:
- "3 dakika önce güncellendi" satırları ve ziyaretçi sayaçları
- Dönen banner'lar, reklamlar ve çerez bildirimleri
- HTML içinde her ziyarette yenilenen güvenlik jetonları (token) ve oturum kimlikleri
- A/B testleri ve "size önerilenler" kutuları
- Her seferinde farklı sırayla gelen listeler
İlk çözüm kapsamı daraltmaktır. Yalnız ilgilendiğiniz bölümü izleyin ve o bölümün HTML'ini değil metnini karşılaştırın. Oturum kodları HTML'in içinde durduğu için HTML karşılaştırması her kontrolde bir değişiklik görür. İhale listesinde bugünün tarihini gösteren sütunu değil, duyuru başlıklarını izleyin.
İkinci çözüm kural koymaktır. changedetection.io arayüzü tarayıcınızın diline göre açılır; Türkçe arayüzde bu kurallar Düzenle > Filtreler ve Tetikleyiciler (İngilizcede Edit > Filters & Triggers) altında durur. "Şunu içeren satırları yoksay" (Ignore lines containing), bir kelimeye ya da tarih kalıbı gibi bir düzenli ifadeye (regex) uyan satırları atar. "Anahtar kelime tetikleyicileri - Metin için tetikle/bekle" (Keyword triggers - Trigger/wait for text), yalnız "ihale" gibi bir kelime sayfada göründüğünde uyarı verir. Metin filtreleme (Text filtering) altında yalnız "Eklenen satırlar" (Added lines) seçeneğini açık bırakabilirsiniz. "Yalnızca tüm geçmişte benzersiz satırlar göründüğünde tetikle" (Only trigger when unique lines appear in all history) seçeneği de eski içerik yalnızca yer değiştirdiğinde izleyiciyi sessiz tutar. Bu seçenekler resmî eğitimde gösteriliyor.
Ne sıklıkla kontrol etmeli, siteye binen yük nasıl düşük tutulur?
Aralığı, sayfanın gerçekte ne sıklıkla değiştiğine ve geç gelen bir uyarının size neye mal olacağına göre seçin. Kullanım şartları sayfası için günde bir kontrol yeter, ihale listesi için mesai saatlerinde saatte bir. Fiyat takibi rehberinde kontrol sıklığının nasıl seçileceğine ayrılmış ayrıntılı bir bölüm var.
Düz bir istek tek bir HTML dosyası indirir. Tarayıcı ise görselleri, betikleri ve yazı tiplerini de yükler; bu da kontrol başına çoğu zaman onlarca istek demektir. Tarayıcıyı yalnız gereken sayfalarda kullanın ve şunlara dikkat edin:
- Kontrol saatlerine küçük, rastgele bir gecikme ekleyin ki izleyiciler aynı siteye aynı anda gitmesin.
- changedetection.io'da
proxies.jsoniçindekireuse_time_minimum, bir proxy'nin yeniden kullanılmadan önce kaç saniye beklemesi gerektiğini belirler. - Sitenin robots.txt dosyasını okuyun. RFC 9309 bu kuralların bir erişim yetkisi olmadığını belirtir, ama siteleri otomatik gezen botlardan (crawler) bu kurallara uymaları beklenir.
Site 403 ya da 429 koduyla yanıt verirse sıklığı düşürün, tarayıcı yerine düz isteğe dönün, site sahibine sorun ya da o sayfayı izlemeyi bırakın. Bu kodların ne anlama geldiğini Scraping'de HTTP Hata Kodları yazısında anlattık. Biri geçene kadar proxy değiştirmek çözüm değildir.
Web sitesi değişiklik takibine neden proxy eklenir?
Bunun iki dürüst gerekçesi var.
Sayfa ülkeye göre farklı görünür. Bir site Türkiye, Almanya ya da ABD'den gelen ziyaretçilere başka bir dil, kampanya ya da şartlar metni gösterebilir. California'daki bir izleyici sayfanın ABD sürümünü izlerken sizin ihtiyacınız Türkiye sürümü olabilir. Sitelerin ülkenizi nasıl tahmin ettiğini IP Adresinden Konum Bulunur mu, Neden Yanlış Gösterir? yazısında, aynı etkinin arama sonuçlarındaki karşılığını ise Google'da Farklı Ülkeden Arama Nasıl Yapılır? yazısında bulabilirsiniz.
Ofis IP'niz izleyicilerin yükünü taşımamalı. Bir site, onlarca izleyici yüzünden ofisinizin IP'sine hız sınırı koyarsa o siteye göz atan iş arkadaşlarınız da yavaşlar. Ayrı bir çıkış IP'si bu iki trafiği birbirinden ayırır; sitenin koyduğu sınırı ise yükseltmez.
Tek bir ülkeden hep aynı görünümü almak için ISP Proxy size sabit bir adres verir, Sticky Proxy ise aynı IP'yi 1-60 dakika boyunca korur. Sayfayı bir ülkedeki ev kullanıcılarının gördüğü gibi görmek istiyorsanız Residential Proxy kullanın (residential proxy nasıl kullanılır). Herkese açık kamu kurumu sayfaları çoğu zaman proxy gerektirmez ya da bir datacenter proxy yeter (Residential ve Datacenter Proxy Farkları). Buradaki proxy size sayfanın doğru sürümünü gösterir; siteden saklanmanın bir yolu değildir.
İleri seviye: changedetection.io'da her izleyiciye ayrı proxy
Bütün izleyiciler tek bir proxy'yi paylaşacaksa HTTP_PROXY ve HTTPS_PROXY ortam değişkenlerini wget ile Proxy Kullanımı yazısındaki gibi tanımlayın. Bu değişkenler düz istek yöntemini (plain requests fetcher) kapsar; tarayıcı yöntemi (browser fetcher) ise playwright_proxy_server ayarını okur. Her izleyiciye kendi ülkesini vermek için, proxy yapılandırma wiki'sinde anlatıldığı gibi veri klasöründe (datastore) bir proxies.json dosyası oluşturun:
{
"tr": {
"label": "Türkiye",
"url": "http://user-country-tr:pass@pr.proxynet.io:8000",
"reuse_time_minimum": 300
},
"de": {
"label": "Germany",
"url": "http://user-country-de:pass@pr.proxynet.io:8000",
"reuse_time_minimum": 300
}
}label arayüzde görünen addır, url ise proxy adresidir. Kullanıcı adındaki -country-tr kısmı ülkeyi belirler; her ülke için kullanıcı adının tam hâlini Proxynet panelinden kopyalayın. Uygulama "No proxy" seçeneğini kendisi ekler.
Ardından bir izleyiciyi açın, Düzenle > İstek (Edit > Request) sekmesine gidin, "Proxy" altında "Türkiye" ya da "Germany" seçeneğini işaretleyip kaydedin. Dosya her sayfa yüklemesinde yeniden okunur, bu yüzden uygulamayı yeniden başlatmanız gerekmez. Seçenekler listede görünmüyorsa JSON dosyasında yazım hatası olup olmadığına bakın. Proxy'leri Settings > CAPTCHA ve Proxy'ler (CAPTCHA & Proxies) bölümünden de ekleyebilirsiniz. SOCKS5 adresleri socks5:// ile başlar; ancak arayüzdeki nota göre kullanıcı adı ve şifreli SOCKS5 yalnız düz istek yöntemiyle çalışır. Tarayıcı yöntemi için HTTP adresini kullanın ya da panelde sunucunuzun IP'sine izin verin (IP whitelist).
Kurulumun çalıştığını doğrulamak için IP'nizi ve ülkenizi gösteren bir sayfayı bir kez "Türkiye", bir kez "No proxy" seçeneğiyle izleyin (Proxy Çalışıyor mu? Proxy Nasıl Test Edilir?).
Kullanım alanları
- İhale ve resmî duyurular: kamu alımları ve duyuru sayfalarındaki izleyiciler (web crawler).
- Rakiplerin şartları ve politikaları: iade politikası, kullanım şartları ve kampanya sayfaları (marka koruma).
- Pazardaki değişiklikler: bir sektördeki yeni ürünler ve değişen tanıtım metinleri (pazar araştırması).
- Fiyat ve stok: ayrı bir iştir, ayrıntısı fiyat takibi sayfasında.
- Uyarıları başka sistemlere aktarmak: her değişikliği bir destek kaydına, bir tabloya ya da bir sohbet kanalına iletin (n8n ile Web Scraping).
- Hukuki sınırlar: neyi toplayabileceğiniz ülkeye ve verinin türüne göre değişir (Web Scraping (Web Kazıma) Yasal mı?).
Sık yapılan hatalar
- Bütün sayfayı izlemek. Her tarih ve her banner bir uyarıya dönüşür.
- Metin yerine HTML karşılaştırmak. Oturum kodları her ziyarette değiştiği için uyarılar hiç bitmez.
- JavaScript ile oluşan bir sayfayı düz istekle izlemek. İzleyici iki boş iskeleti birbiriyle karşılaştırır.
- Her dakika kontrol etmek. Çoğu sayfa haftada yalnız birkaç kez değişir.
403ya da429kodunu görmezden gelmek veya yeni proxy'lerle zorlamak. İki kod da sitenin yavaşlamanızı ya da durmanızı istediğini gösterir.- Yanlış ülkeden kontrol etmek. Müşterileriniz Türkiye sürümünü görürken siz ABD sürümünü izlersiniz.
- Her uyarıyı herkese göndermek. Her izleyiciyi, uyarı üzerine harekete geçecek kişiye yönlendirin.
Karar rehberi
| İhtiyaç | Öneri |
|---|---|
| Birkaç sayfa, bilgisayarınız gün boyu açık | Tarayıcı eklentisi (Distill yerel izleyici); bir bölüm seçin, metni karşılaştırın |
| 7/24 izleme, kurulum istemiyorsunuz | Bir bulut servisi; ihtiyacınız olan ülkeyi sunup sunmadığına bakın |
| Onlarca ya da yüzlerce sayfa, veri şirket içinde kalacak | Kendi sunucunuzda Docker ile changedetection.io |
| Sayfa ülkeye göre değişiyor | İzleyici başına bir ülke proxy'si (proxies.json); statik ISP ya da sticky residential |
| Her kontrolde yanlış alarm | Bir bölüm seçin, metni karşılaştırın, tarih satırlarını yok sayın, yalnız eklenen satırlarda uyarı alın |
| İçerik JavaScript ile geliyor, izleyici boş sayfa görüyor | Tarayıcı yöntemi, daha düşük sıklıkla |
Site 403 ya da 429 ile yanıt veriyor | Daha seyrek kontrol edin, robots.txt'yi okuyun, site sahibine sorun ya da bırakın; engeli aşmaya çalışmayın |
Sıkça sorulan sorular
Distill Web Monitor ne işe yarar?
Bir sayfayı ya da sayfanın bir bölümünü izler ve değiştiğinde size haber verir. Yerel izleyiciler tarayıcınızda çalışır, bu yüzden tarayıcının açık kalması gerekir. Distill'in web uygulamasından eklenen izleyiciler ise Distill'in bulutunda çalışır.
Bir sitede değişiklik olduğunda nasıl bildirim alırım?
Sayfaya bir izleyici kurun ve bir bildirim kanalı bağlayın. Çoğu araç e-posta gönderir; Slack, Telegram ya da bir webhook adresine de mesaj atabilir. changedetection.io bildirimler için Apprise kütüphanesini kullanır ve 85'ten fazla bildirim türünü listeler.
Web sitesi değişikliklerini ücretsiz takip edebilir miyim?
Evet. Distill'in yerel izleyicileri ve kendi sunucunuza kurduğunuz changedetection.io, kendi donanımınızın maliyeti dışında bir ücret gerektirmez. Ücretsiz bulut paketleri ise kaç sayfa izleyebileceğinizi ve sayfaların ne sıklıkla kontrol edileceğini sınırlar.
changedetection.io ile ücretsiz proxy kullanmalı mıyım?
Hayır. Ücretsiz bir proxy, izlediğiniz her sayfayı ve çoğu zaman giriş bilgilerinizi tanımadığınız birinin sunucusundan geçirir. Riskleri Ücretsiz Proxy ve Web Proxy Siteleri Güvenli mi? yazısında anlattık.
changedetection.io neden 403 hatası veriyor?
Site isteği reddetmiştir. Bunun sebebi çoğu zaman izleyicinin çok sık kontrol etmesi ya da sitenin o bölümde otomatik ziyaret istememesidir. Sıklığı düşürün, robots.txt'yi ve kullanım şartlarını okuyun, site sahibine sorun. Cevap değişmiyorsa izleyiciyi durdurun.
Bir sayfadaki değişikliklerin geçmişini görebilir miyim?
İzleyici, kurduğunuz günden itibaren her kopyayı saklar. Daha eski sürümler için Internet Archive'ın Wayback Machine arşivinde çoğu zaman sayfanın eski kayıtları bulunur.
Özet
Web sitesi değişiklik takibi, sayfanın doğru bölümünü izlediğinizde işe yarar. Önemli bölümü seçin, metnini karşılaştırın, tarihleri ve sayaçları yok sayın, yalnız yeni satırlarda uyarı alın. Sayfayı gerçekte değiştiği sıklıkta kontrol edin; yolu da sayfa sayısına ve verinin nerede duracağına göre seçin. Ülke önemliyse her izleyiciye kendi proxy'sini verin; seçenekleri proxy hizmetlerimiz sayfasında bulabilirsiniz.




