Test
10.000 Seiten
3,75 $
0,38 $/1K Seiten
- Testen Sie es mit Ihren echten URLs
- Dieselbe API wie beim größten Paket
- Credits verfallen nie
Anwendungsfall · Überwachung · /batch
Der Vergleich von rohem HTML löst jedes Mal einen Alarm aus, wenn sich eine Anzeige oder ein Token ändert. Der Vergleich des Hauptinhalts als Markdown markiert nur, was ein Leser bemerken würde: einen neuen Preis, eine umformulierte Klausel, einen frischen Changelog-Eintrag.
Kurze Antwort
Wie kann ich Webseiten auf Inhaltsänderungen überwachen?
Lesen Sie jede Seite planmäßig als Markdown ihres Hauptinhalts, speichern Sie den Text und vergleichen Sie ihn mit der vorherigen Version; alarmieren Sie nur, wenn sich der Text ändert. WebReaderAPI liest bis zu 100 URLs pro Batch-Job, entfernt Anzeigen und Menüs, damit sie keine Fehlalarme auslösen, und berechnet einen Credit pro Seite ab 0,07 $/1K Seiten, Stand Oktober 2026. Ohne KYC; mit Krypto bezahlen.
| Endpoint | POST https://webreaderapi.com/api/v1/batch, dann GET https://webreaderapi.com/api/v1/jobs/{job_id} |
|---|---|
| Batch-Größe | Bis zu 100 URLs pro Batch-Job |
| Was verglichen wird | Markdown des Hauptinhalts, ohne Anzeigen, Menüs oder Banner |
| Abrechnung | 1 Credit = 1 gelesene Seite ohne Browser; 2 Credits, wenn die Seite einen Browser braucht, um JavaScript auszuführen. Eine Suchanfrage, die fehlschlägt oder die eine robots.txt einer Website verweigert, wird nicht abgerechnet |
| Beispielvolumen | 200 täglich geprüfte Seiten = etwa 6.000 Seiten pro Monat |
| Preis | 3,75 $ für 10.000 Seiten; Credits laufen nie ab |
Seiten, deren Wortlaut für Ihr Unternehmen wichtig ist und die sich ohne Ankündigung ändern:
Beschränken Sie die Liste auf öffentliche Seiten. Persönliche Profile und Seiten hinter einem Login sind ausgeschlossen.
Weil sich HTML ständig ändert, ohne dass sich der Inhalt ändert. Rotierende Anzeigen, Session-Tokens, Zeitstempel in Footern und A/B-Test-Markup sorgen dafür, dass sich zwei Ladevorgänge derselben Seite unterscheiden. Ein Diff auf HTML macht aus diesem Rauschen Alarme, und dann lesen die Leute sie nicht mehr.
Markdown des Hauptinhalts entfernt den größten Teil des Rauschens, bevor Sie vergleichen. Übrig bleibt der Text, den ein Mensch liest: Überschriften, Absätze, Listen und Tabellen. Ein Diff auf diesen Text ist kurz, lesbar und einen Alarm wert.
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")
Prüfen Sie so oft, wie sich die Seite realistisch ändert, und nicht öfter. Täglich passt zu Preisseiten und Changelogs; wöchentlich zu Richtlinien und Dokumentation. Eine Seite, die jede Stunde gelesen wird, sagt selten mehr als ein Lesevorgang pro Tag, und sie kostet 24-mal so viel.
WebReaderAPI befolgt robots.txt für jede Seite und respektiert das Crawl-delay einer Website in Crawl-Jobs. Seiten, die die Website nicht erlaubt, werden übersprungen und nicht berechnet, sodass eine strenge Website einfach aus Ihrem Bericht fällt. Fragen Sie den Eigentümer, wenn Sie Zugriff auf eine Seite brauchen, die robots verweigert.
Ein Credit pro Seite und Prüfung. Einige Beispiele zu den Preisen von Oktober 2026:
Seiten, die einen Browser brauchen, kosten zwei Credits; setzen Sie render=false für Seiten, von denen Sie wissen, dass sie reines HTML sind, um beim Zähler von eins zu bleiben.
Multiplizieren Sie Seiten mit Prüfungen pro Monat und wählen Sie dann ein Paket, das einige Monate reicht. Credits laufen nie ab.
10.000 Seiten
3,75 $
0,38 $/1K Seiten
50.000 Seiten
14,25 $
0,28 $/1K Seiten
100.000 Seiten
21,75 $
0,22 $/1K Seiten
In jedem Plan: Hauptinhalt extrahieren · JavaScript-Rendering bei Bedarf · Fehlgeschlagene und abgelehnte Seiten werden nicht berechnet · Credits verfallen nie
Nein. Es liest Seiten und gibt Markdown zurück; Ihr Skript vergleicht Versionen und sendet den Alarm per E-Mail, Chat oder Ticket. Der Code oben gibt die geänderten Zeilen als Ausgangspunkt aus.
Vergleichen Sie Markdown des Hauptinhalts, nicht HTML, und entfernen Sie Zeilen, von denen Sie wissen, dass sie sich bei jedem Ladevorgang ändern, wie z. B. "aktualisiert vor 5 Minuten", bevor Sie diffen. Die meisten rotierenden Elemente werden bereits durch die Extraktion des Hauptinhalts entfernt.
Ja. Mit render=auto werden Seiten, die ohne JavaScript leer sind, für zwei Credits in einem Browser gerendert. Seiten, die ohne auskommen, bleiben bei einem.
Ja: Führen Sie einen Crawl-Job statt eines Batches aus und vergleichen Sie dann Seite für Seite. Bei großen Websites vergleichen Sie zuerst die lastmod-Daten der Sitemap und lesen nur die Seiten erneut, die sich geändert haben.
Ab 0,07 $/1K Seiten · ohne KYC
API-Schlüssel erhalten