хотите помочь? Вот ваши варианты:","Crunchbase","О нас","Спасибо всем за потрясающую поддержку!","Быстрые ссылки","Партнерская программа","Премиум","ProxyScrape премиум-проба","Проверка прокси-сервера онлайн","Типы прокси-серверов","Страны-посредники","Примеры использования прокси-сервера","Важно","Политика использования файлов cookie","Отказ от ответственности","Политика конфиденциальности","Условия и положения","Социальные сети","Facebook","LinkedIn","Twitter","Quora","Telegram","Дискорд","\n © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
~ Рассказ о веб-скраппинге от Арьи - пользователя ProxyScrape
Чтобы внести ясность, я должен заявить, что не являюсь официальным представителем ProxyScrape. Однако я большой поклонник и клиент их услуг. Если вы еще не пользуетесь их услугами, я настоятельно рекомендую вам это сделать! Приведенные ниже мнения и мысли полностью принадлежат мне.
"О, $!*^, не может быть".
Именно это чувство я обнаружил в себе в три часа ночи, борясь с осознанием того, что компания, которая когда-то была такой же модной, как доставка молока, которую большинство людей отнесло бы к эпохе музыки диско и диких неоновых нарядов, все еще бродит вокруг, как неудачная стрижка 80-х годов, и, к сожалению, она повсюду.
Во времена своего расцвета эта компания была настоящей находкой. В период расцвета от нее было не скрыться. Теперь же ее название с ностальгией произносят только в домах престарелых.
"YellowPages".
You might be wondering, “Why does this matter? Why should anyone give a damn? Why is this not a 30s TikTok with a dude playing GTA 5 on the other half of it?” Well, one of the hottest uses for web scraping is lead discovery and generation. In our capitalist wonderland where everyone’s peddling some crazy sh*t, it just makes sense to scour the internet for the suckers who’ll “HODL” and “FOMO” into your crypto timeshare that’s shaped like “half a rhombus”. And hey, just to be clear, “it’s NOT a pyramid scheme… it’s just shaped like those famous pointy things in Egypt.”
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:
"Стена позора": Те реликты, которые еще не дожили до эпохи интернета, все еще висят там. Бизнес вашего дедушки, вероятно, прохлаждается там, как и тот SMMA, который вы открыли из-за TikToks и завязали с ним через три месяца, и который теперь увековечен в бизнес-каталогах Google.
"Я не такая, как другие девушки": В то время как свеженькие скреперы считают, что Google Maps - это святой Грааль для поиска информации о малом бизнесе, каждый опытный скрепер знает, что это полная чушь - он перенасыщен, каждый 14-летний подросток, вдохновленный неким лысым мужчиной, домогался этих предприятий.
"как отнять конфету у ребенка": Сайты YellowPages и их производные не имеют ни малейшей защиты. Я могу в считанные секунды перелопатить каждый бизнес в их каталоге. Речь идет о ДЕСЯТКАХ МИЛЛИОНОВ ссылок.
Конечно, это не самое популярное слово в маркетинговых кругах, но именно в нем кроется возможность. В то время как другие гонятся за последними тенденциями, немногие смекалистые распознают потенциал в забытых уголках интернета. Возможно, YellowPages - это пережиток прошлого, но в мире генерации свинца это реликт с неиспользованным потенциалом и дорожной картой к успеху.
Теперь вы, возможно, спросите: "Как мне воспользоваться такой возможностью?". - Давайте вместе пройдемся по всем шагам, и, надеюсь, даже некоторые из вас, неандертальцы, к концу этой работы смогут наскрести YellowPages.
Мы подойдем к этому вопросу так же, как и к любому другому сайту. Первый шаг - выяснить, как работает этот чертов сайт. Обычно это требует от вас, да, именно от вас, понять, как перейти туда, где находятся эти сочные данные. Нет $!*^... как вы собираетесь извлекать данные, если не можете их найти?!?
Shown Above: YellowPages Canada’s landing page, the unfortunate victim of this post.
Как вы можете видеть выше, на целевой странице есть два текстовых поля - одно для ввода поискового запроса, а другое - для указания местоположения. Давайте заполним их и выполним поиск; я буду искать "Стоматологов" в "Торонто, Онтарио".
Shown Above: YellowPages Canada’s listing results page.
После того как вы разберетесь с букварем, заполните его и сумеете найти кнопку поиска и нажать ее (я впечатлен), вы должны быть перенаправлены на страницу, подобную той, что указана выше, на которой есть путь, похожий на следующий:
/search/si/1/Dentists/Toronto+ON
Мы можем вывести следующую структуру пути (она пригодится нам позже):
/search/si/[Номер страницы]/[Термин поиска]/[Местность]+[Код региона]
Еще один момент: мы уже нашли нужные нам данные, бизнес-листинги, теперь давайте выясним, откуда они будут загружаться: они должны быть отправлены внутри документа или получены из конечной точки API (или, если вы не умеете работать, и поверьте мне, я это видел, - из вебсокетов).
Показано выше: Запросы fetch/XHR, исходящие от страницы. (Спойлер: данные не содержатся ни в одном из них).
Показано выше: Списки предприятий в документе. (OMGEEE Данные действительно находились в документе).
As we sifted through the API requests, looking for the data, it was proven futile. We then turned our attention to the HTML. Now, here’s a little nugget of insight for you – after “navigating the digital landscape for over a decade”, I knew instinctively that the data was within the document, thanks to the pages’ snappy responsiveness.
Однако давайте будем реалистами. Учитывая статус YellowPages как телефонной компании, отчаянно ищущей актуальность и, что более важно, доход, маловероятно, что они выставляют напоказ самые передовые технологические стеки. Шансы на то, что они наймут разработчиков, которые щеголяют во фланели и имеют в резюме пятьдесят приложений для выполнения дел на основе React, ничтожно малы. Итак, действительно ли мы шокированы тем, что веб-страница статична?
Тем не менее, объявления на странице содержатся в div, извлекаемом с помощью селектора "div.resultList". Каждое отдельное объявление, удобно вложенное в вышеупомянутый элемент, может быть извлечено с помощью селектора div[itemtype="http://schema.org/LocalBusiness]
Я оставляю вас наедине с тем, как индивидуально извлекать данные за пределами этого уровня детализации; в противном случае мы были бы здесь вечно. Используйте атрибут "itemprop" - он должен значительно облегчить вам процесс.
Now, to automate extraction: You should paginate through the results using the URL (recall the path structure we discussed earlier), extracting elements and data from each page until you hit an empty page. I personally opted to use Rust for this project as it’s fast and provides easy parallelization (which will be important in a second), leveraging the “reqwest” and “select” crates to handle the heavy lifting. And here’s a few pro tips: remember to rotate your user agent, set your referrer correctly, use a proxy, and PLEASE don’t DDOS them.
Показано выше: Пустая страница результатов 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.
На рисунке выше: Канадский аналог ФБР - КККП.