blocked i no_follow: bany i pomijanie linków
2026-06-22
· updated 2026-09-05
Dwie reguły chronią crawler przed pułapkami. Obie operują na hostname i są zapisywane samo queue.status_reason = blocked lub no_follow:
blocked— blokada crawla: zablokowanyhostnamedostajeIgnoreRequestprzed pobraniem i wypada z kolejki. → wykluczone w UIno_follow— prewencja zapisu linków: linki do takich domen nie trafiają do kolejki hostów i nie są dalej zbierane. → wykluczone w UI
Dwa mechanizmy obok siebie
blocked — blokada crawla (BlacklistMiddleware)
flowchart TD
A[Żądanie URL] --> B[BlacklistMiddleware]
B --> C{hostname blocked?}
C -- Tak --> D[IgnoreRequest: odrzuć]
C -- Nie --> E{Poddomena hostname?}
E -- Nie --> P[Normalne parsowanie]
E -- Tak --> F{Wynik requestu}
F -- "OK" --> G[Zapisz OK w oknie 50]
F -- "DNS/TLS/TCP error" --> H[Zapisz błąd w oknie 50]
G --> I{50 ostatnich = 100% błędów?}
H --> I
I -- Nie --> P
I -- Tak --> J[upsert_blocked + blocked_reason]
J --> D
no_follow — prewencja zapisu linków (save_hosts)
flowchart TD
A[Strona HTML] --> B[Ekstrakcja linków]
B --> C{Normalizacja linku}
C -- "Brak hostname" --> D[Odrzuć link]
C -- "hostname OK" --> E{hostname w no_follow?}
E -- Tak --> D
E -- Nie --> F{hostname blocked?}
F -- Tak --> D
F -- Nie --> G[Zapisz do hosts]
Kiedy domena trafia do blocked
BlacklistMiddleware i audyt DNS/TLS blokują automatycznie, bez operatora:
- Generator poddomen / trap — 50 ostatnich unikalnych subdomen jednego
hostnamekończy się w 100% złym wynikiem (DNS != DNS_ALIVE,TLS_*,TCP_*). - Jeśli w oknie 50 subdomen choć jedna jest OK,
blockednie jest ustawiane. - Powód blokady jest zapisywany jako
blocked_reason.
Kiedy domena trafia do no_follow
- Ręcznie / operator — wielkie platformy bez wartości dla indeksu (
facebook.com,google.com,youtube.com), dodawane przez panel/no_follow. - Nie automatycznie z
blocked—no_follownie jest korelowane z trapami i nie powstaje przy blokadzie.
Współpraca z hosts
- Wybór do crawla (
Database.start_urls) claimuje tylko rekordy z datąqueue.next_claim_at <= now;status_reasoni brak daty blokują routing. - Filtr odkrytych linków (
save_hosts) odrzuca linki, których root jest w uniino_followiblocked— blokada działa natychmiast w tej samej sesji.
blocked vs no_follow
| Cecha | blocked | no_follow |
|---|---|---|
| Poziom działania | crawl/request + kolejka (hosts) | zapis linków (save_hosts) |
| Cel | ochrona pasma, wątków, CPU | ochrona rozmiaru bazy |
| Działanie | IgnoreRequest przed pobraniem | pominięcie linku przy zapisie |
| Zarządzanie | automatyczne (BlacklistMiddleware, audyt) | ręczne / reguły operatora |
| Trwałość | trwała do ręcznej zmiany flagi | trwała do ręcznej zmiany flagi |
Reguły dla programisty
no_follow= prewencja globalna — wielkie platformy o nieskończonej strukturze linków.blocked= automat trapów — ustawiaj przezupsert_blocked, zapisującblocked_reason.- Nie łącz z
no_follow— trap nie tworzy wpisuno_follow;no_followsłuży linkom, których nie zapisujemy i nie zbieramy.
Powiązane: Typy problemów DNS/TLS, Audyt DNS.