Přejít na obsah
ArchiLinks
ArchiLinksRegistrovat se

Nástroj na kontrolu zpětných odkazů na webu: skripty, které můžete naplánovat

Každý volání zde funguje s curl nebo libovolným HTTP klientem. Nahraďte klíč, zachovejte vzor: volání, uložení, rozdíl.

Výzkumný tým ArchiLinks ·

Miniaturní pracovní lůžko s Python, Node a Bash nástroji vedle žebříku a časovače

Základní pravidla

Jedno volání, jedna fakturace. Každý požadavek je účtován jednou bez ohledu na počet řádků a jedno volání vrátí až 1 000 řádků. Hluboké stránkování končí u 50 000 řádků a parametr per přijímá hodnoty od 10 do 5 000.

To mění způsob, jakým píšete skripty. Požádejte o per=1000 a stránkujte pouze tehdy, když potřebujete více, protože nástroj na kontrolu zpětných odkazů na webu postavený na malých stránkách znásobí vaše náklady desetinásobně bez přínosu. Chyby jsou jasné: HTTP 401 pro chybějící klíč, 402 když dojdou kredity, a každé JSON tělo nese ok.

Před automatizací

Spusťte každý skript jednou ručně proti malé doméně a přečtěte JSON. Názvy polí, kontejner řádků a pole pro stránkování by měla vycházet ze skutečné odpovědi, ne z našich příkladů, takže je potvrďte, než bude cron job na nich záviset.

Python: uložení datumového snímku

Názvy polí v odpovědi jsou uvedeny jako příklad. Vytiskněte jednu odpověď, než se na klíč spolehnete.

python
import json, sys, datetime, requests

BASE = "https://archilinks.com/api.php"
KEY = "sk_live_..."

def snapshot(domain, action="refdomains"):
    r = requests.get(BASE, params={"action": action, "q": domain, "per": 1000, "key": KEY}, timeout=30)
    if r.status_code in (401, 402):
        sys.exit(f"API said {r.status_code}: check key or balance")
    r.raise_for_status()
    body = r.json()
    assert body.get("ok"), body
    name = f"{domain}-{action}-{datetime.date.today()}.json"
    json.dump(body, open(name, "w"), indent=1)
    print(name, body.get("_credits"))

snapshot(sys.argv[1])

Node: hromadné Domain Rating pro seznam

bulk_dr přijme až 2 000 domén za 1 kredit na volání, pomocí GET s parametrem domains nebo tělem POST. Čárkový oddělovač níže je příklad; nejprve otestujte se dvěma doménami. Node 18 nebo novější má vestavěný fetch.

javascript
const domains = ["example.com", "example.org"];
const url = new URL("https://archilinks.com/api.php");
url.search = new URLSearchParams({
  action: "bulk_dr",
  domains: domains.join(","),
  key: "sk_live_...",
});

const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(JSON.stringify(await res.json(), null, 2));

Bash a jq: týdenní rozdíl

Uložte snímek s datem, poté porovnejte dva soubory. Plánujte cron týdenně nebo měsíčně; index se obnovuje přibližně měsíčně.

bash
# crontab: 0 6 1 * *  /opt/seo/pull.sh old-shop.com
curl -s "https://archilinks.com/api.php?action=refdomains&q=$1&per=1000&key=$KEY" \
  | jq -S . > "snap-$1-$(date +%F).json"

# compare two dated files
diff <(jq -S . snap-old-shop.com-2026-09-01.json) <(jq -S . snap-old-shop.com-2026-10-01.json) | head -50

Která akce pro který skript

SkriptAkceNáklad na spuštěníVýstup
Báze pro migracitoppages, refdomains4 kredityDva JSON soubory
Čištění outreachubulk_dr1 kredit na volání, až 2 000 doménDR na prospecta
Překryv s konkurencíintersect2 kredityStránky odkazující na 2–10 domén
Sledování anchor textůanchors2 kreditySeznam anchor textů
Kontrola portfoliacompare1 kredit na volání, až 20 doménMetriky vedle sebe
Miniaturní mechanismus retry s gumovými polštářky, výstražným zvonkem a hromadným počítadlem mincí

Zvládání okrajových případů

Skripty selhávají na okrajových případech. Počítejte s nimi.

Obalte každé volání retry, které čeká a vzdá se po třech pokusech, kromě 401 a 402, které retry nikdy neopraví. Logujte objekt _credits z každé autentizované odpovědi, aby skok v nákladech ukázal ve vašich logech dříve, než se projeví na zůstatku, a omezte smyčky tvrdým maximálním počtem stránek.

Uchovávejte snímky v git nebo object storage s datem v názvu souboru. Jednoduché, nudné, účinné. Pro migrace spárujte tyto skripty s receptem na mapu přesměrování a kontrolním seznamem migrace. Uživatelé Google Sheets mohou volat stejná URL z Apps Script pomocí UrlFetchApp a tabulka s měsíčním spouštěčem je dokonale dobrým monitorem.

Otázky ke skriptům

Tři otázky se objeví dříve, než většina skriptů půjde do produkce, a každá má krátkou odpověď.

Jak zdarma zkontroluji, kolik zpětných odkazů má můj web?

Volání akce overview nebo stats bez klíče. Oba jsou zdarma a vracejí celkové počty z našeho vlastního link indexu.

Pro seznamy za celkovými počty potřebujete klíč a 2 kredity na volání.

Co se stane, když dojde zůstatek?

API vrátí HTTP 402. Váš skript by měl zastavit a upozornit, ne retry v smyčce. Dobijte z účtu pomocí USDT (TRC-20) a spusťte znovu.

Mohu to volat z prohlížeče?

Ano. CORS je otevřený. Neumisťujte však klíč do veřejného front-end kódu, protože si ho může každý přečíst a utratit váš kredit.

Miniaturní dopravník s přesnými ozubenými koly pohybujícími zlatými mincemi efektivně s jedním klíčem

Stránkování bez plýtvání kredity

Stránkování je místo, kde skripty tiše stojí více, než by měli. Každý požadavek na stránku je samostatné volání s vlastním poplatkem, takže smyčka, která požádá o jednu stránku příliš mnoho, platí za nic.

Přečtěte si pole pro stránkování v jedné skutečné odpovědi předtím, než napíšete smyčku. Příklady na tomto webu ukazují tvar, ale názvy a signál pro zastavení pocházejí z živého JSON.

Zastavte, když se vrátí kratší stránka

Stránka s méně řádky, než jste požadovali, je obvykle ta poslední. Nechte smyčku tam zastavit místo toho, abyste požádali o další stránku pro jistotu.

Pokud odpověď obsahuje total nebo next-page pole, použijte to jako signál pro zastavení. Počítejte řádky, které jste uložili, proti tomu, aby se nesrovnalost ukázala v logu.

Omezte každou smyčku

Nastavte tvrdé maximum na stránky ve každé smyčce. Omezení chrání váš zůstatek, pokud se změní název pole a skript bude stále požadovat stejnou stránku.

Vyberte limit z velikosti, kterou očekáváte, a poté ho vědomě zvyšte, když skutečná doména potřebuje více stránek.

Pište každou stránku, jak přichází

Uložte každou stránku na disk, jakmile se vrátí, s číslem stránky v názvu souboru. Skript, který se zastaví na stránce čtyřicet, může pokračovat od posledního uloženého souboru místo toho, aby začínal znovu a platil dvakrát.

Udržujte soubory v jedné složce pro doménu a datum, aby se při opakování nikdy nemíchaly dva tahy.

Spuštění skriptů v rozvrhu

Vhodné bude jakékoliv plánovače. Na tom záleží, že každé spuštění zanechá soubor a že selhání spuštění někoho upozorní.

Výběr hostitele pro úkol

Cron vyhovuje serveru s diskem, který ovládáte. CI job vyhovuje repozitáři, který již uchovává snímky, takže historie žije vedle kódu, který ji čte.

Ať už vyberete cokoliv, udržujte seznam domén v souboru, takže přidání domény je úprava místo změny skriptu.

Upozornění na selhání, ne na každý úspěch

Upozorněte, když skript selže, nebo když zůstatek klesne pod úroveň, kterou jste si vybrali. Zpráva o úspěchu každé ráno naučí lidi ignorovat kanál, který nese skutečný problém.

Logujte objekt _credits z každého spuštění, jak dělá příklad v Pythonu, a jednou měsíčně zkontrolujte trend.

Týdenní rozdíl v pěti krocích

01

Vyberte akce

Vyberte dvě nebo tři volání, která odpoví na vaši otázku. Každé stojí kredity, takže vedle něj napište cenu.

02

Uložte surovou odpověď

Uložte JSON přesně tak, jak přišel, s doménou a datem v názvu souboru. Formátování může počkat až na krok rozdílu.

03

Seřaďte klíče před porovnáním

Použijte jq -S nebo ekvivalent, aby pořadí klíčů neukazovalo změnu. Bash příklad výše to dělá.

04

Porovnejte seznamy, ne soubory

Spojte dvě odpovědi na URL nebo doménu, poté nahlaste, co bylo přidáno, odstraněno a změněno. Čistý textový diff dlouhého souboru je těžko akční.

05

Zkontrolujte rozdíl a jednejte

Odeslané domény, které odkazují, pošlete tomu, kdo vlastní outreach, a odstraněné stránky tomu, kdo vlastní přesměrování.

Testování skriptu předtím, než na něj závisí cron job

Skript, který běží bez dozoru, by se měl nejprve prokázat. Použijte jednu malou doménu, přečtěte si celé JSON a až poté rozšiřte seznam.

Rychlá kontrola správnosti je porovnat celkové počty s volným overview voláním pro stejnou doménu. Čísla nemusí přesně odpovídat placenému seznamu, ale měla by souhlasit v měřítku.

Spuštění se dvěma doménami

Dvě domény testují smyčku, názvy souborů a chybové cesty. Jedna doména může projít štěstím, zatímco dvě ukážou, zda se smyčka resetuje mezi doménami.

Použijte jednu doménu, kterou dobře znáte, a jednu, kterou neznáte, abyste mohli posoudit, zda výstup vypadá správně.

Udržujte klíč mimo logy a tikety

Skripty často vytisknou celou adresu požadavku a klíč sedí v té adrese jako parametr. Odstraňte klíč z každé řádky, která opustí server, nebo pošlete ji v Authorization hlavičce, což ji drží mimo adresu.

Pokud se klíč objeví v tiketu nebo veřejném repozitáři, zastavte plánované spuštění, které ho používá, před dalším během.

Udržujte krátkou poznámku o tom, kde klíč žije, které skripty ho čtou a které hosty volají. Tato poznámka je to, co potřebujete, když se někdo zeptá, kdo může utratit zůstatek.

Výběr akce pro každou otázku

Začněte otázkou, ne seznamem endpointů. Migrace potřebuje vědět, které URL nesou odkazy, zatímco outreach seznam potřebuje skóre domén. Jeden host, dvě otázky. Každá stojí jiné množství kreditů.

Napište cenu vedle otázky předtím, než napíšete jakýkoliv kód. Skript, který běží týdně, znásobí malou cenu padesát dvěma, a to násobení je snadné zapomenout, dokud zůstatek neukáže.

Retry, které se zastaví, když by měly

Retry požadavku, který selhal z dočasného důvodu, jako je timeout nebo server error, několikrát s rostoucím pauzou mezi pokusy. Nechte retry 401 nebo 402, protože čekání ani jednu odpověď nezmění.

Logujte každý retry s akcí a doménou, aby vzor selhání ukázal jako vzor spíše než jako ticho.

Nastavte počet retry na jednom místě, takže každé volání ve skriptu následuje stejné pravidlo. Rozptýlené retry smyčky se často neshodují a neshoda je těžko najít v logu.