Opracowałem rozszerzenie Chrome, które zbiera dane bezpośrednio z otwartych stron Freelancehunt.
Rozszerzenie określa typ strony i wyciąga informacje z HTML i DOM.
Jakie strony są przetwarzane
strona projektu;
korespondencja z klientem;
strona ofert;
własna aplikacja na projekt;
bloki z portfolio i podobnymi pracami.
Jakie dane są zbierane
Z projektu:
ID projektu;
nazwa;
opis;
budżet;
typ budżetu;
data publikacji;
status;
link do projektu.
Z korespondencji:
ID dialogu;
imię klienta;
profil klienta;
pierwsza wiadomość przychodząca;
data pierwszej odpowiedzi;
ostatnia aktywność;
powiązany projekt.
Z własnej oferty:
ID aplikacji;
tekst odpowiedzi;
cena;
termin realizacji;
data złożenia;
linki do portfolio;
link do podobnego projektu.
Jak działa parser
Strona Freelancehunt
→ określenie typu strony
→ wyszukiwanie potrzebnych elementów DOM
→ wyciąganie tekstu i atrybutów
→ normalizacja danych
→ sprawdzenie obowiązkowych pól
→ przekazanie danych do CRM
Dla stabilności wdrożono:
kilka rezerwowych selektorów CSS;
oczekiwanie na załadowanie dynamicznych elementów;
MutationObserver;
sprawdzenie zgodności projektu;
diagnoza pominiętych pól;
ochrona przed ponownym przechwyceniem;
sekwencja: korespondencja → projekt → oferta.
W rezultacie zwykłe strony Freelancehunt przekształcają się w zorganizowane karty leadów w oddzielnym CRM.
Rozszerzenie określa typ strony i wyciąga informacje z HTML i DOM.
Jakie strony są przetwarzane
strona projektu;
korespondencja z klientem;
strona ofert;
własna aplikacja na projekt;
bloki z portfolio i podobnymi pracami.
Jakie dane są zbierane
Z projektu:
ID projektu;
nazwa;
opis;
budżet;
typ budżetu;
data publikacji;
status;
link do projektu.
Z korespondencji:
ID dialogu;
imię klienta;
profil klienta;
pierwsza wiadomość przychodząca;
data pierwszej odpowiedzi;
ostatnia aktywność;
powiązany projekt.
Z własnej oferty:
ID aplikacji;
tekst odpowiedzi;
cena;
termin realizacji;
data złożenia;
linki do portfolio;
link do podobnego projektu.
Jak działa parser
Strona Freelancehunt
→ określenie typu strony
→ wyszukiwanie potrzebnych elementów DOM
→ wyciąganie tekstu i atrybutów
→ normalizacja danych
→ sprawdzenie obowiązkowych pól
→ przekazanie danych do CRM
Dla stabilności wdrożono:
kilka rezerwowych selektorów CSS;
oczekiwanie na załadowanie dynamicznych elementów;
MutationObserver;
sprawdzenie zgodności projektu;
diagnoza pominiętych pól;
ochrona przed ponownym przechwyceniem;
sekwencja: korespondencja → projekt → oferta.
W rezultacie zwykłe strony Freelancehunt przekształcają się w zorganizowane karty leadów w oddzielnym CRM.