темный логотип proxyscrape

Как я стал свинцовым "миллионером"

Февраль-01-20245 минут чтения

~ Рассказ о веб-скраппинге от Арьи - пользователя ProxyScrape

Чтобы внести ясность, я должен заявить, что не являюсь официальным представителем ProxyScrape. Однако я большой поклонник и клиент их услуг. Если вы еще не пользуетесь их услугами, я настоятельно рекомендую вам это сделать! Приведенные ниже мнения и мысли полностью принадлежат мне.


"О, $!*^, не может быть".

Именно это чувство я обнаружил в себе в три часа ночи, борясь с осознанием того, что компания, которая когда-то была такой же модной, как доставка молока, которую большинство людей отнесло бы к эпохе музыки диско и диких неоновых нарядов, все еще бродит вокруг, как неудачная стрижка 80-х годов, и, к сожалению, она повсюду.

Во времена своего расцвета эта компания была настоящей находкой. В период расцвета от нее было не скрыться. Теперь же ее название с ностальгией произносят только в домах престарелых.

"YellowPages".
Возможно, вы задаетесь вопросом: "Почему это имеет значение? Почему это должно кого-то волновать? Почему это не TikTok 30-х годов с чуваком, играющим в GTA 5 на другой половине?" Ну, одно из самых горячих применений веб-скреппинга - это поиск и генерация лидов. В нашей капиталистической стране чудес, где все торгуют каким-то безумным дерьмом, просто имеет смысл прочесать интернет в поисках лохов, которые будут "HODL" и "FOMO" на ваш криптовалютный таймшер, имеющий форму "половины ромба". И для ясности: "Это НЕ финансовая пирамида... она просто имеет форму тех знаменитых острых штуковин в Египте".
So, here’s the kicker. One of the absolute gems for B2B lead generation, in my humble opinion, is none other than YellowPages (or Yell for you “chewsday” people). Why? Well, let me break it down:
  1. "Стена позора": Те реликты, которые еще не дожили до эпохи интернета, все еще висят там. Бизнес вашего дедушки, вероятно, прохлаждается там, как и тот SMMA, который вы открыли из-за TikToks и завязали с ним через три месяца, и который теперь увековечен в бизнес-каталогах Google.
  1. "Я не такая, как другие девушки": В то время как свеженькие скреперы считают, что Google Maps - это святой Грааль для поиска информации о малом бизнесе, каждый опытный скрепер знает, что это полная чушь - он перенасыщен, каждый 14-летний подросток, вдохновленный неким лысым мужчиной, домогался этих предприятий.
  1. "как отнять конфету у ребенка": Сайты YellowPages и их производные не имеют ни малейшей защиты. Я могу в считанные секунды перелопатить каждый бизнес в их каталоге. Речь идет о ДЕСЯТКАХ МИЛЛИОНОВ ссылок.

Конечно, это не самое популярное слово в маркетинговых кругах, но именно в нем кроется возможность. В то время как другие гонятся за последними тенденциями, немногие смекалистые распознают потенциал в забытых уголках интернета. Возможно, YellowPages - это пережиток прошлого, но в мире генерации свинца это реликт с неиспользованным потенциалом и дорожной картой к успеху.

Теперь вы, возможно, спросите: "Как мне воспользоваться такой возможностью?". - Давайте вместе пройдемся по всем шагам, и, надеюсь, даже некоторые из вас, неандертальцы, к концу этой работы смогут наскрести YellowPages.

Мы подойдем к этому вопросу так же, как и к любому другому сайту. Первый шаг - выяснить, как работает этот чертов сайт. Обычно это требует от вас, да, именно от вас, понять, как перейти туда, где находятся эти сочные данные. Нет $!*^... как вы собираетесь извлекать данные, если не можете их найти?!?

Показано выше: Посадочная страница YellowPages CanadaНесчастная жертва этого поста.

Как вы можете видеть выше, на целевой странице есть два текстовых поля - одно для ввода поискового запроса, а другое - для указания местоположения. Давайте заполним их и выполним поиск; я буду искать "Стоматологов" в "Торонто, Онтарио".

После того как вы разберетесь с букварем, заполните его и сумеете найти кнопку поиска и нажать ее (я впечатлен), вы должны быть перенаправлены на страницу, подобную той, что указана выше, на которой есть путь, похожий на следующий:

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

Мы можем вывести следующую структуру пути (она пригодится нам позже):


/search/si/[Номер страницы]/[Термин поиска]/[Местность]+[Код региона]

Еще один момент: мы уже нашли нужные нам данные, бизнес-листинги, теперь давайте выясним, откуда они будут загружаться: они должны быть отправлены внутри документа или получены из конечной точки API (или, если вы не умеете работать, и поверьте мне, я это видел, - из вебсокетов).

Показано выше: Запросы fetch/XHR, исходящие от страницы. (Спойлер: данные не содержатся ни в одном из них).
Показано выше: Списки предприятий в документе. (OMGEEE Данные действительно находились в документе).
Мы просеивали запросы API в поисках данных, но это оказалось тщетным. Тогда мы обратили внимание на HTML. Теперь, вот вам маленький самородок - "ориентируясь в цифровом ландшафте более десяти лет", я инстинктивно понял, что данные находятся в документе, благодаря быстрому отклику страниц.

Давайте будем реалистами. Учитывая статус YellowPages как телефонной компании, отчаянно ищущей актуальность и, что более важно, доход, маловероятно, что они выставляют напоказ самые передовые технологические стеки. Шансы на то, что они наймут разработчиков, которые щеголяют во фланели и имеют в резюме пятьдесят приложений для выполнения дел на основе React, ничтожно малы. Итак, действительно ли мы шокированы тем, что веб-страница статична?

Тем не менее, объявления на странице содержатся в div, извлекаемом с помощью селектора "div.resultList". Каждое отдельное объявление, удобно вложенное в вышеупомянутый элемент, может быть извлечено с помощью селектора div[itemtype="http://schema.org/LocalBusiness] 

Я оставляю вас наедине с тем, как индивидуально извлекать данные за пределами этого уровня детализации; в противном случае мы были бы здесь вечно. Используйте атрибут "itemprop" - он должен значительно облегчить вам процесс.

Теперь автоматизируем извлечение: Вы должны постранично просматривать результаты, используя URL (вспомните структуру путей, о которой мы говорили ранее), извлекая элементы и данные с каждой страницы, пока не попадете на пустую страницу. Лично я решил использовать Rust для этого проекта, так как он быстрый и обеспечивает легкое распараллеливание (что будет важно через секунду), используя ящики "reqwest" и "select" для выполнения тяжелой работы. И вот несколько советов: не забывайте поворачивать свой user agent, правильно устанавливать referrer, использовать прокси и, PLEASE, не устраивайте DDOS.
Показано выше: Пустая страница результатов YellowPages.
Your script should be good to go now. But how can we elevate this even further? Let’s put our singular combined brain cell to work and ponder… “Do we need to sequentially request each page?” Absolutely not. YellowPages makes it remarkably easy for us to parallelize this process by providing the number of pages available for the query – hint, hint, wink, wink.
Показано выше: Количество страниц YellowPages в нижней части страницы результатов.

Однако у этой стратегии распараллеливания есть одна оговорка: Хотя YellowPages может предположить, что существует более 60 страниц результатов, попытка получить доступ к любой странице за пределами 60 в результатах не будет выполнена. Поэтому установите жесткий предел для распараллеливания - 60. При условии достаточной пропускной способности и вычислительной мощности каждая страница результатов должна быть отсканирована за то же время, которое требуется для отсканирования одной страницы в рамках последовательной модели.

Показано выше: Пример извлеченных данных объявлений YellowPages.

Теперь, возможно, вы зададитесь вопросом: это была приманка? Какое отношение ко всему этому имеет "миллионер"? Ну, если вы следовали за мной и теперь обладаете функциональным скриптом, я могу лично подтвердить, а могу и не подтвердить, что ничто не мешает вам теоретически просмотреть все города Канады и вытащить из YellowPages все бизнес-объявления по запросу в пределах этого города. Эти данные могут иметь миллионную стоимость, если их правильно дополнить, но это также буквально миллионы предприятий в их каталоге, которые теперь в вашем распоряжении.

YellowPages может вызывать воспоминания об ушедшей эпохе, но ее потенциал для генерации B2B-лидов остается скрытой сокровищницей в цифровом ландшафте. Если разобраться в причудах статичного веб-интерфейса, то извлечение данных из этой, казалось бы, устаревшей платформы откроет перед вами огромный массив бизнес-лидов. Упущенная из виду и недостаточно используемая природа YellowPages делает ее уникальной возможностью.

Я надеюсь, что эта статья не оставит вас с мыслью: "Настоящим сокровищем были друзья, которых мы приобрели на этом пути". Я надеюсь, что она продемонстрировала уникальные возможности, которые существуют, особенно с набором навыков, которые многие из нас воспринимают как должное, а также, надеюсь, послужила интересным чтением для тех из вас, кто имеет опыт работы в этой сфере, и дала понимание тем, кто им не обладает.

Как всегда, будьте осторожны, используйте средства защиты и, ради всего святого... не делайте того, за что ФБР схватит вас за задницу - ну... в данном случае это будет RCMP.

На рисунке выше: Канадский аналог ФБР - КККП.