ciemne logo proxyscrape

Jak zostałem "milionerem" leadów

luty-01-2024 r.5 minut czytania

~ Opowieść o webscrapingu autorstwa Aryi - użytkownika ProxyScrape

Żeby było jasne, muszę zastrzec, że nie jestem oficjalnym przedstawicielem ProxyScrape. Jestem jednak wielkim fanem i klientem ich usług. Jeśli jeszcze nie korzystasz z ich usług, gorąco polecam to zrobić! Poniższe opinie i przemyślenia są całkowicie moje.


"Oh $!*^, nie ma mowy"

Dokładnie to zdanie wymruczałem o 3 nad ranem, zmagając się ze świadomością, że firma niegdyś tak modna jak dostawy mleka, coś, co większość ludzi odesłałaby do ery muzyki disco i tych dzikich neonowych strojów, wciąż krąży wokół jak zła fryzura z lat 80-tych - i niestety jest wszędzie.

Ta firma była prawdziwą okazją w czasach swojej świetności. W czasach jej świetności nie można było od niej uciec. Teraz jej nazwa jest wymawiana z nutką nostalgii tylko w domach spokojnej starości.

"YellowPages".

Być może zastanawiasz się: "Dlaczego to ma znaczenie? Dlaczego ktoś miałby się tym przejmować? Dlaczego to nie jest TikTok z lat 30-tych z kolesiem grającym w GTA 5 na drugiej połowie?" Cóż, jednym z najgorętszych zastosowań skrobania stron internetowych jest odkrywanie i generowanie leadów. W naszej kapitalistycznej krainie czarów, w której każdy sprzedaje jakieś szalone gówno, sensowne jest przeszukiwanie Internetu w poszukiwaniu frajerów, którzy "HODL" i "FOMO" do twojego kryptowalutowego timeshare, który ma kształt "połowy rombu". I hej, żeby było jasne, "to NIE jest piramida finansowa... ma po prostu kształt tych słynnych spiczastych rzeczy w Egipcie".

A więc, oto kicker. Jednym z absolutnych klejnotów do generowania leadów B2B, moim skromnym zdaniem, jest nikt inny jak YellowPages (lub Yell dla osób "żujących"). Dlaczego? Cóż, pozwól mi to rozbić:

  1. "ściana wstydu": Te relikty, które nie do końca nadążyły za erą Internetu, wciąż tam wiszą. Prawdopodobnie znajduje się tam firma twojego dziadka, podobnie jak SMMA, którą założyłeś z powodu TikToksa i z której zrezygnowałeś w ciągu trzech miesięcy, a która jest teraz uwieczniona w katalogach biznesowych Google.

  1. "Nie jestem jak inne dziewczyny": Podczas gdy świeżo upieczeni scraperzy wierzą, że Mapy Google są świętym Graalem dla małych firm, każdy doświadczony scraper wie, że to stek bzdur - jest nasycony, każdy 14-latek zainspirowany pewnym łysym mężczyzną nękał te firmy.

  1. "jak odebranie dziecku cukierka": YellowPages i ich pochodne strony internetowe nie są w żaden sposób chronione. Mógłbym zeskrobać każdą firmę z ich katalogu w ciągu kilku sekund. Mówimy tu o dziesiątkach milionów potencjalnych klientów.

Jasne, może nie jest to modne słowo w kręgach marketingowych, ale w tym tkwi szansa. Podczas gdy inni gonią za najnowszymi trendami, doświadczeni nieliczni dostrzegają potencjał w zapomnianych zakątkach Internetu. YellowPages może być reliktem z przeszłości, ale w świecie generowania leadów jest to relikt z niewykorzystanym potencjałem i mapą drogową do sukcesu.

Teraz możesz zapytać: "Jak mógłbym skorzystać z takiej okazji?". - Przejdźmy razem przez każdy krok i miejmy nadzieję, że nawet niektórzy z was, neandertalczycy, będą w stanie zeskrobać YellowPages do końca tego.

Podejdziemy do tego jak do każdej innej strony internetowej. Pierwszym krokiem jest ustalenie, jak do cholery działa strona internetowa. Zwykle wymaga to, tak, od ciebie, aby dowiedzieć się, jak nawigować do miejsca, w którym znajdują się soczyste dane. No $!*^... jak chcesz wyodrębnić dane, jeśli nie możesz ich znaleźć?!?

Powyżej: Strona docelowa YellowPages Canadaniefortunna ofiara tego wpisu.

Jak widać powyżej, na ich stronie docelowej znajdują się dwa pola tekstowe - jedno dla wyszukiwanego hasła, a drugie dla lokalizacji. Wypełnijmy je i przeprowadźmy wyszukiwanie; będę szukał "Dentystów" w "Toronto, Ontario".

Powyżej: Strona wyników wyszukiwania YellowPages Canada.

Po ustaleniu ABC i wypełnieniu ich oraz zlokalizowaniu przycisku wyszukiwania ORAZ kliknięciu go (jestem pod wrażeniem), powinieneś zostać przekierowany na stronę podobną do powyższej, która ma ścieżkę podobną do poniższej:

/search/si/1/Dentists/Toronto+ON

Możemy wydedukować następującą strukturę ścieżki (przyda się to później):


/search/si/[Page Number]/[Search Term]/[Locality]+[Region Code].

Kolejną rzeczą, na którą należy zwrócić uwagę, jest to, że zlokalizowaliśmy już dane, których potrzebujemy, listy firm - zastanówmy się, skąd te listy firm są ładowane, powinny być wysyłane w dokumencie LUB pobierane z punktu końcowego API (lub, jeśli jesteś zepsuty, a zaufaj mi, widziałem to - websockets).

Powyżej: Żądania fetch/XHR pochodzące ze strony. (Spoiler: w żadnym z nich nie ma danych).

Powyżej: Listy firm w dokumencie. (OMGEEE Dane faktycznie znajdowały się w dokumencie).

Gdy przeszukiwaliśmy żądania API w poszukiwaniu danych, okazało się to daremne. Następnie zwróciliśmy uwagę na HTML. Oto mała ciekawostka - po "nawigowaniu po cyfrowym krajobrazie przez ponad dekadę" instynktownie wiedziałem, że dane znajdują się w dokumencie, dzięki szybkiej reakcji stron.

Bądźmy jednak szczerzy. Biorąc pod uwagę status YellowPages jako firmy zajmującej się książkami telefonicznymi, desperacko poszukującej znaczenia i, co ważniejsze, przychodów, jest mało prawdopodobne, aby obnosili się z najnowocześniejszymi technologiami. Szanse na zatrudnienie programistów, którzy obnoszą się z flanelami i mają w swoim CV pięćdziesiąt aplikacji do zrobienia opartych na React, są nikłe. Czy jesteśmy więc naprawdę zszokowani, że strona jest statyczna?

Niemniej jednak, oferty na stronie są zawarte w elemencie div, który można wyodrębnić za pomocą selektora "div.resultList". Każda pojedyncza lista, wygodnie zagnieżdżona w wyżej wymienionym elemencie, może zostać wyodrębniona za pomocą selektora div[itemtype="http://schema.org/LocalBusiness] 

Pozostawię ci wymyślenie, jak indywidualnie wyodrębnić dane poza tym poziomem szczegółowości; w przeciwnym razie będziemy tu wiecznie. Użyj atrybutu "itemprop" - powinno to znacznie ułatwić proces.

Teraz, aby zautomatyzować ekstrakcję: Powinieneś paginować wyniki za pomocą adresu URL (przypomnij sobie strukturę ścieżki, którą omówiliśmy wcześniej), wyodrębniając elementy i dane z każdej strony, aż trafisz na pustą stronę. Osobiście zdecydowałem się użyć Rusta do tego projektu, ponieważ jest szybki i zapewnia łatwą równoległość (co będzie ważne za chwilę), wykorzystując skrzynki "reqwest" i "select" do obsługi ciężkiego podnoszenia. A oto kilka profesjonalnych wskazówek: pamiętaj, aby obrócić agenta użytkownika, poprawnie ustawić referrer, użyć proxy i PROSZĘ, nie DDOSuj ich.

Powyżej: Pusta strona wyników YellowPages.

Skrypt powinien być już gotowy do działania. Ale jak możemy to jeszcze bardziej usprawnić? Uruchommy naszą pojedynczą połączoną komórkę mózgową i zastanówmy się... "Czy musimy kolejno żądać każdej strony?". Absolutnie nie. YellowPages sprawia, że niezwykle łatwo jest nam zrównoleglić ten proces, podając liczbę stron dostępnych dla zapytania - podpowiedź, podpowiedź, mrugnięcie, mrugnięcie.

Powyżej: Liczba stron YellowPages na dole strony wyników.

Jest jednak jedno zastrzeżenie do tej strategii równoległości: Podczas gdy YellowPages może sugerować, że istnieje więcej niż 60 stron wyników, próba uzyskania dostępu do dowolnej strony powyżej 60 w wynikach nie zostanie wyrenderowana. Dlatego ustaw twardy limit dla swojej równoległości na 60. Zakładając odpowiednią przepustowość i moc obliczeniową - każda strona wyników powinna zostać zeskrobana w tym samym czasie, w jakim zajęłoby to zeskrobanie jednej strony w modelu sekwencyjnym.

Powyżej: Przykład wyodrębnionych danych ofert YellowPages.

Teraz możesz się zastanawiać, czy to był clickbait? Co "milioner" ma z tym wszystkim wspólnego? Cóż, jeśli podążałeś za tym i teraz posiadasz funkcjonalny skrypt, mogę lub nie być w stanie osobiście poświadczyć, że nic nie powstrzymuje cię przed teoretycznym iterowaniem przez każde miasto w Kanadzie i pobieraniem każdej listy firm z zapytania w tym mieście z YellowPages. Dane te mogą dosłownie mieć wartość w milionach dolarów, jeśli zostaną odpowiednio rozszerzone, ale są to również dosłownie miliony firm w ich katalogu, które są teraz w twoim zasięgu.

YellowPages może przywoływać wspomnienia z minionej epoki, ale jego potencjał w zakresie generowania leadów B2B pozostaje ukrytym skarbem w cyfrowym krajobrazie. Poruszając się po dziwactwach statycznego interfejsu internetowego, skrobanie danych z tej pozornie przestarzałej platformy ujawnia szeroki wachlarz potencjalnych klientów biznesowych. Pomijana i niedostatecznie wykorzystywana natura YellowPages sprawia, że jest to wyjątkowa okazja.

Moim jedynym celem jest, aby ten wpis na blogu nie pozostawił Cię z myślą "prawdziwym skarbem byli przyjaciele, których poznaliśmy po drodze" - mam nadzieję, że zarówno pokazał on wyjątkowe możliwości, które istnieją, zwłaszcza z zestawem umiejętności, które tak wielu z nas uważa za oczywiste, jak i mam nadzieję, że posłużył jako interesująca lektura dla tych z Was, którzy mają doświadczenie w tej dziedzinie i dał wgląd tym z Was, którzy nie są.

Jak zawsze, zachowaj bezpieczeństwo, używaj ochrony i na miłość boską... nie rób czegoś, w czym FBI będzie na twoim tyłku - cóż... w tym przypadku byłaby to RCMP.

Powyżej: Kanadyjski odpowiednik FBI - RCMP.