Test
10.000 sayfa
$3,75
$0,38/1K sayfa
- Gerçek URL'lerinizde deneyin
- En büyük paketle aynı API
- Krediler hiç sona ermez
Kullanım durumu · izleme · /batch
Ham HTML'i karşılaştırmak, her reklam veya her token değiştiğinde bir uyarı üretir. Ana içeriği Markdown olarak karşılaştırmak yalnızca bir okuyucunun fark edeceği şeyleri işaretler: yeni bir fiyat, yeniden yazılmış bir madde, yeni bir changelog kaydı.
Hızlı yanıt
Web sayfalarını içerik değişiklikleri için nasıl izleyebilirim?
Her sayfayı ana içeriğinin Markdown'ı olarak bir zamanlamaya göre okuyun, metni saklayın ve önceki sürümle karşılaştırın; yalnızca metin değiştiğinde uyarın. WebReaderAPI batch görevi başına 100 URL'ye kadar okur, reklamları ve menüleri kaldırarak yanlış alarmları önler ve Ekim 2026 itibarıyla $0,07/1K sayfa başlangıçlı olarak sayfa başına bir kredi ücretlendirir. KYC yok; kripto ile ödeyin.
| Endpoint | POST https://webreaderapi.com/api/v1/batch, ardından GET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| Batch boyutu | Toplu iş başına 100 URL'ye kadar |
| Neyin karşılaştırıldığı | Reklamlar, menüler ve bannerlar olmadan ana içeriğin Markdown'ı |
| Faturalandırma | 1 kredi = tarayıcı olmadan 1 sayfa okuma; sayfa JavaScript render etmek için tarayıcı gerektiriyorsa 2 kredi. Başarısız olan veya bir sitenin robots.txt'inin reddettiği istek için ücret alınmaz |
| Örnek hacim | Günde 200 sayfa kontrol edilir = ayda yaklaşık 6.000 sayfa |
| Fiyat | 10.000 sayfa için $3,75; krediler hiç süresi dolmaz |
İfadesi işiniz için önemli olan ve haber vermeden değişen sayfalar:
Listeyi herkese açık sayfalarla sınırlı tutun. Kişisel profiller ve giriş gerektiren sayfalar kapsam dışıdır.
Çünkü içerik değişmeden HTML her zaman değişir. Dönen reklamlar, oturum token'ları, altbilgideki zaman damgaları ve A/B test işaretlemeleri aynı sayfanın iki yüklemesini farklı kılar. HTML üzerinde bir diff bu gürültüyü uyarılara dönüştürür ve insanlar onları okumayı bırakır.
Ana içerik Markdown'ı, karşılaştırmadan önce gürültünün çoğunu kaldırır. Geriye kalan, bir kişinin okuduğu metindir: başlıklar, paragraflar, listeler ve tablolar. Bu metin üzerindeki bir diff kısa, okunabilir ve bir uyarıya değerdir.
import difflib
import json
import os
import pathlib
import time
import requests
API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}
STORE = pathlib.Path("snapshots.json")
URLS = [
"https://example.com/pricing",
"https://example.com/legal/terms",
"https://example.com/changelog",
]
old = json.loads(STORE.read_text(encoding="utf-8")) if STORE.exists() else {}
job = requests.post(API + "/batch", headers=HEADERS, json={"urls": URLS}, timeout=60).json()
results, cursor, delay = [], None, 5
while True:
params = {"cursor": cursor} if cursor else {}
page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
results += page.get("results", [])
cursor = page.get("next_cursor")
if page["status"] == "done" and not cursor:
break
if not cursor:
time.sleep(delay)
delay = min(delay * 2, 60)
new = dict(old)
for item in results:
if "markdown" not in item:
print("not read:", item["url"], item.get("error", {}).get("code"))
continue
before = old.get(item["url"], "")
if before and before != item["markdown"]:
diff = difflib.unified_diff(before.splitlines(), item["markdown"].splitlines(), lineterm="", n=0)
print("CHANGED:", item["url"])
print("\n".join(list(diff)[:40]))
new[item["url"]] = item["markdown"]
STORE.write_text(json.dumps(new, ensure_ascii=False), encoding="utf-8")
Sayfa gerçekte ne sıklıkla değişiyorsa o kadar sıklıkla kontrol edin, daha fazla değil. Günlük, fiyat sayfalarına ve changelog'lara uyar; haftalık, politikalara ve dokümantasyona uyar. Her saat okunan bir sayfa, günde bir okumadan nadiren daha fazlasını söyler ve 24 kat daha pahalıya gelir.
WebReaderAPI her sayfa için robots.txt'ye uyar ve crawl işlerinde bir sitenin Crawl-delay dosyasına saygı gösterir. Sitenin izin vermediği sayfalar atlanır ve ücretlendirilmez, böylece katı bir site basitçe raporunuzdan çıkar. Robots'un reddettiği bir sayfaya erişmeniz gerekiyorsa site sahibine sorun.
Kontrol başına sayfa başına bir kredi. Ekim 2026 fiyatlarıyla bazı örnekler:
Tarayıcı gerektiren sayfalar iki kredi kullanır; düz HTML olduğunu bildiğiniz sayfalar için render=false ayarlayarak sayımı birde tutun.
Sayfaları aylık kontrol sayısıyla çarpın, sonra birkaç ay dayanan bir pack seçin. Krediler hiç süresi dolmaz.
10.000 sayfa
$3,75
$0,38/1K sayfa
50.000 sayfa
$14,25
$0,28/1K sayfa
100.000 sayfa
$21,75
$0,22/1K sayfa
Tüm planlarda: Ana içeriği çıkarma · Gerektiğinde JavaScript oluşturma · Başarısız ve reddedilen sayfalar ücretlendirilmez · Krediler hiç sona ermez
Hayır. Sayfaları okur ve Markdown döndürür; betiğiniz sürümleri karşılaştırır ve uyarıyı e-posta, sohbet veya ticket ile gönderir. Yukarıdaki kod, değişen satırları başlangıç noktası olarak yazdırır.
HTML'yi değil, ana içerik Markdown'ını karşılaştırın ve diff almadan önce "5 dakika önce güncellendi" gibi her yüklemede değiştiğini bildiğiniz satırları çıkarın. Dönen öğelerin çoğu ana içerik çıkarma ile zaten kaldırılır.
Evet. render=auto ile JavaScript olmadan boş kalan sayfalar, iki kredi karşılığında bir tarayıcıda render edilir. JavaScript olmadan çalışan sayfalar birde kalır.
Evet: batch yerine bir crawl işi çalıştırın, sonra sayfa sayfa karşılaştırın. Büyük siteler için önce sitemap'in lastmod tarihlerini karşılaştırın ve yalnızca değişen sayfaları yeniden okuyun.
$0,07/1K sayfa başlangıçlı · KYC yok
API anahtarı alın