Drzewo decyzyjne

Sprawdź backlinki swojej strony w n8n czy w zwykłym Pythonie?

Płótno z 25 węzłami do trójetapowego zadania to częsty żal. Skrypt, którego nikt inny nie jest w stanie edytować – to drugi. Skorzystaj z drzewa.

Drewniane drzewo decyzyjne z dwiema wyraźnymi ścieżkami w lesie

Drzewo decyzyjne, od góry do dołu

  • Czy ktoś nietechniczny będzie edytował przepływ lub czytał jego dzienniki uruchomień? Wybierz n8n lub Make.
  • Czy zadanie mieści się w 60 liniach i tak czy siak będzie w repozytorium? Wybierz Pythona.
  • Czy potrzebujesz publikacji na Slacku i wiersza w arkuszu, ale bez porównywania zmian? Wybierz n8n z jednym węzłem HTTP Request.
  • Czy porównujesz setki domen, prowadzisz historię lub testujesz jednostkowo parsowanie? Wybierz Pythona z SQLite.
  • Czy zespół już płaci za wykonania w chmurze n8n? Policz je: pętla po 40 domenach może zużyć limit planu.
  • Żadne z powyższych nie pasuje? Zacznij od curl w skrypcie powłoki i zobacz, co boli najbardziej.

Kiedy wizualny przepływ zasługuje na swoje miejsce

Płótno jest warte swojego bałaganu w niektórych zadaniach. Jeśli osoba nietechniczna musi widzieć każdy krok i jego ostatnie uruchomienie, wizualny przepływ bije repozytorium, którego i tak nie otworzą. Trzymaj to krótkie.

Większość zadań dotyczących backlinków to pobranie, sprawdzenie i zapis. Cztery węzły robią to dobrze. Jeśli Twoim zadaniem jest sprawdzanie backlinków Twojej strony miesięcznie dla klienta, taki kształt pasuje do płótna. Problemy zaczynają się, gdy ktoś doda paginację, ponowne próby i porównanie zmian, ponieważ każde z nich wprowadza własną gałąź.

Wybierz płótno dla czytelnika, a nie dla autora.

Kto czyta przepływ

Ludzie z marketingu i sprzedaży czytają przepływ przez jego wyniki i chcą widzieć ostatnie uruchomienie na wyciągnięcie ręki. Płótno daje im to bez potrzeby tworzenia zgłoszenia. Czytają wynik, a nie kod. Skrypt daje im plik dziennika, którego nie otworzą.

Nadaj przepływu jasną nazwę i jednozdaniowy opis, aby następny czytelnik wiedział, co obiecuje, zanim go otworzy. Węzeł z niejasną etykietą kosztuje więcej czasu niż jakakolwiek brakująca funkcja.

Gałęzie widoczne na pierwszy rzut oka

Węzeł IF na ok jest łatwy do śledzenia. Trzy takie węzły na jednej stronie są nadal czytelne, jeśli każda gałąź ma prostą nazwę. Po tym limicie linie się krzyżują, a recenzent potrzebuje dziesięciu minut, aby być pewnym, która gałąź uruchomi się przy pustym wyniku.

Gdy płótno staje się obciążeniem

Pętle po wielu domenach, współdzielony stan między uruchomieniami i testy jednostkowe to typowe punkty napięcia. Płótno radzi sobie z każdym z nich obejściem, a każde obejście to miejsce, w którym przepływ może odbiec od tego, co miałeś na myśli.

Jeśli zauważasz, że eksportujesz JSON, aby naprawić przepływ, zadanie przekroczyło możliwości płótna. Przenieś logikę do kodu i zachowaj płótno tylko dla powiadomień.

Mosiężny klucz z czerwoną wstążką włożony do drewnianej zamkowej szczeliny

Konfiguracja n8n w czterech liniach

Jeden węzeł HTTP Request, metoda GET, URL https://linkzoid.pro/api.php. Dodaj parametry zapytania action, q, key. Każdy, kto chce sprawdzić backlinki swojej strony w ten sposób, może skopiować go w pięć minut.

Przechowuj klucz w poświadczeniach, a nie w węźle. Dodaj węzeł IF na ok i wyślij gałąź false do workflow błędu, który Cię powiadomi.

Podziel tablicę rows węzłem Item Lists lub Split Out, a następnie zapisz do Google Sheets lub Postgres. Śledź liczbę wykonania, ponieważ każdy element może być rozliczany jako krok w niektórych planach.

To całe zadanie. Zawodzi, gdy pojawia się paginacja: pętle w n8n działają, ale czytają się źle po przekroczeniu około dziesięciu węzłów.

Zbuduj przepływ n8n w pięciu węzłach

Każdy węzeł robi jedną rzecz i każdy można przetestować indywidualnie przed dodaniem kolejnego.

01

Utwórz węzeł HTTP Request

Metoda GET i URL https://linkzoid.pro/api.php. Dodaj action, q i per jako parametry zapytania, a klucz zostaw na następny krok.

02

Dołącz klucz jako poświadczenie

Przechowuj go w poświadczeniach n8n i odwołuj się do niego z zapytania. Klucz wpisany bezpośrednio w pole URL może trafić do logów i eksportów.

03

Blokada na flagę ok

Dodaj węzeł IF, który odczytuje ok. Wyślij gałąź false do workflow błędu, który opublikuje treść odpowiedzi w miejscu, które będziesz widzieć.

04

Podziel wiersze

Użyj Split Out na tablicy rows, aby każda domena stała się osobnym elementem. Zapisz te elementy do arkusza lub tabeli, a nie całą odpowiedź w jednej komórce.

05

Przetestuj najpierw na darmowej akcji

Ustaw węzeł na overview, która nie wymaga klucza, i potwierdź kształt odpowiedzi przed przełączeniem na akcję płatną.

Tabela rozwiązywania problemów

ObjawPrzyczyna w n8nPrzyczyna w Pythonie
Przychodzi tylko 10 wierszyNie ustawiono parametru per w węźleTo samo, sprawdź ciąg zapytania
Uruchomienie się powiodło, arkusz pustyWiersze nie zostały podzielone na elementyZapisano słownik zamiast rows
402 po tygodniuWorkflow pętli na triggerzeCron odpala się dwukrotnie
Kluk wycieka do logówWklejony w pole URLWydrukowano pełny URL
Luki miesięczneRetencja wykonania usunęła stare uruchomieniaNigdy nie przechowywano historii

Koszt jednego uruchomienia

Po naszej stronie koszt jest taki sam w obu przypadkach: 2 kredyty za stronę refdomains. Koszt różni się po stronie konstruktora.

Samodzielnie hostowane n8n jest darmowe w uruchomieniu. Plany chmurowe liczą wykonania. Zwykły skrypt na cronie nic nie kosztuje.

Niezależnie od wyboru, przechowuj datowaną kopię każdego uruchomienia poza narzędziem. Tygodniowe migawki w Actions to jedno uporządkowane miejsce na to, a porównanie suite wyjaśnia, dlaczego własna historia jest warta posiadania.

Policz wykonania na domenę

Pętla po czterdziestu domenach to czterdzieści uruchomień w planie, który liczy wykonania. Sprawdź, jak Twój plan liczy pętlę, zanim ją zaplanujesz, ponieważ rachunek podąża za liczbą, a nie kredytami.

Napisz spodziewaną liczbę obok harmonogramu. Zaskoczenie na rachunku łatwiej wyjaśnić, gdy szacunek był już w pliku.

Samodzielne hostowanie ma swój własny koszt

Samodzielnie hostowane n8n kosztuje serwer, aktualizacje i backupy. Baza danych jest Twoja do utrzymania przy życiu. Zwykły skrypt na małej maszynie ma mniej ruchomych części, co jest jednym z powodów do wyboru go dla stałego miesięcznego zadania.

Dwie wagi równoważące doniczkową roślinę przeciwko stosowi luźnych kamieni

Co zwykle psuje się jako pierwsze

W n8n jest to paginacja i liczenie elementów. W Pythonie to rzecz, której nikt nie przetestował: pusta rows, timeout, pole o innej nazwie niż zakładałeś.

Żadne narzędzie nie jest złe. Wybierz według tego, kto będzie utrzymywać rzecz za sześć miesięcy. Jeśli jesteś Ty, sam, kod jest łatwiejszy do przeszukania. Jeśli jest to zespół marketingowy, który już żyje na płótnie, mały przepływ, który mogą zobaczyć, bije repozytorium, którego się boją.

Mieszane konfiguracje też działają. Niech Python zapisze CSV w harmonogramie, a niech n8n odczyta plik i wyślij go na Slacka. Każde narzędzie robi tę część, którą obsługuje najlepiej, a żaden przepływ nie przekracza dziesięciu kroków.

Utrzymanie czytelności wersji Pythona

Zwykłym przypadkiem dla kodu jest to, że ktoś inny będzie musiał go zmienić za sześć miesięcy. Ułatw to. Krótki skrypt z jasnymi nazwami i zapisaną odpowiedzią bije sprytną jednowierszówkę, której nikt nie śmie dotknąć.

Przetestuj parser na zapisanej odpowiedzi

Zapisz jedną prawdziwą odpowiedź do pliku i wskaż na nią test jednostkowy. Parser działa wtedy bez wydawania kredytu, a zmiana nazwy pola zawodzi w teście, a nie w poniedziałek rano.

Trzymaj zapisaną odpowiedź małą, ponieważ dziesięć wierszy wystarczy. Znotuj datę jej pobrania, aby wiedzieć, kiedy ostatnio zmieniły się nazwy pól.

Przechowuj ustawienia w jednym miejscu

Domeny, akcje i rozmiar strony należą do małego bloku konfiguracyjnego, a nie rozrzucone po skrypcie. Kolega może wtedy zmienić listę docelową bez dotykania logiki parsującej wiersze.

Trzymaj sekrety z dala od tego bloku. Załaduj je ze środowiska, w ten sam sposób, w jaki ładowany jest klucz.

Uruchom dwutygodniowy test przed zobowiązaniem

Nie rozstrzygaj tego na papierze. Zbuduj najmniejszą wersję zadania w każdym narzędziu, uruchamiaj ją codziennie przez dwa tygodnie i zobacz, które z nich otwierasz bez pytania.

Spójrz, co się psuje. Policz razy, w których musiałeś coś edytować ręcznie i razy, gdy wynik był błędny bez błędu. Narzędzie, które wymaga mniej poprawek ręcznych, jest tym, które należy zachować.

Loguj każdą ręczną poprawkę

Prowadź prosty zapis każdego razu, gdy dotknąłeś przepływu lub skryptu ręcznie. Krótka lista po dwóch tygodniach powie Ci więcej niż jakakolwiek tabela funkcji.

Znotuj, kto zażądał zmian

Jeśli żądania pochodziły od osób, które nie potrafią czytać kodu, płótno może wygrać. Jeśli pochodziły od Ciebie, repozytorium jest łatwiejsze w obsłudze.

Każda odpowiedź jest OK, dopóki możesz na nią wskazać. Napisz powód obok przepływu lub repozytorium i wróć do niego, gdy zadanie urośnie.

Krótkie odpowiedzi dla twórców

Czy Make lub Zapier działają z tym API?
Tak. Działa wszystko, co może wysłać HTTPS GET z parametrami zapytania, w tym Make, Zapier, Pipedream i Apps Script. Użyj modułu HTTP, umieść klucz w zapisanym połączeniu i odczytaj tablicę JSON rows w kolejnym kroku.
Czy agent AI może to wywołać zamiast tego?
Technicznie tak, ponieważ jest to zwykłe API HTTP. Dla stałego miesięcznego zadania skrypt jest tańszy i bardziej przewidywalny, a agent dodaje rachunek za model i szansę na błędny parametr. Używaj agenta tylko do pytań ad hoc.
Jaka jest najtańsza droga do rozpoczęcia?
Skrypt powłoki z curl i darmową akcją overview, uruchamiany z cron. Bez klucza, bez kosztu, i poznajesz kształt odpowiedzi. Przejdź do Pythona, gdy pojawi się pierwsze niezręczne parsowanie JSON.