перейти к содержанию

Как очистить данные «Желтых страниц» с помощью Python: подробное пошаговое руководство

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

В этом подробном пошаговом руководстве вы узнаете, как эффективно парсить «Желтые страницы» с помощью Python и мощных инструментов парсинга веб-страниц.

Зачем очищать данные «Желтых страниц»?

Вот несколько примеров того, как компании используют очищенные данные «Желтых страниц»:

  • Исследования рынка – Изучите местоположение конкурентов, предложения услуг и рейтинги, чтобы принимать решения на основе данных.
  • Лидогенерация – Создайте целевые списки рассылки для продаж и маркетинговых кампаний.
  • Трудоустройство – Источник контактной информации кандидатов для конкретных отраслей и мест.
  • Обогащение данных – Расширьте существующие базы данных CRM и продаж дополнительными бизнес-данными.

Только в 2018 году на YellowPages.com был выполнен поиск по более чем 115 миллионам компаний, что подчеркивает огромные объемы доступных данных. Такие компании, как LeadGenius, UpLead и DemandDrive, используют очищенные данные для реализации своих B2B-решений.

Проблемы при очистке «желтых страниц»

Однако парсинг «Желтых страниц» может создать некоторые ключевые технические проблемы:

  • Обнаружение бота – Блокировка с помощью механизмов защиты от ботов, таких как запрет IP-адресов и CAPTCHA.
  • Рендеринг JavaScript – Важный контент страницы загружается динамически через JS.
  • Управление прокси – Избежание банов путем ротации разных IP-адресов прокси.
  • Человеческое поведение – Имитация движений мыши, прокрутки и т. д.

Исследования показывают, что YellowPages.com использует сложную систему обнаружения ботов и может блокировать до 18% запросов на парсинг.

Инструменты для очистки желтых страниц

Чтобы преодолеть эти проблемы, рекомендуется использовать коммерческий прокси-сервер и решение для очистки, например Смартпрокси вместо того, чтобы очищать свои собственные IP-адреса.

ПоставщикОсновные преимущества
Смартпрокси– Более 40 миллионов резидентных IP-адресов
– Высокие показатели успеха
– Целевые местоположения и устройства
Соакс– Автоматизация браузера
— Решение капчи
— Хорошая документация
БрайтДата- Надежная поддержка
– Настраиваемые планы
– 60+ миллионов IP-адресов

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

Шаг 1. Установите библиотеки Python

Давайте настроим скрипт очистки Python. Сначала установите Requests и BeautifulSoup:

pip install requests beautifulsoup4
  • Запросы – Отправляет HTTP-запросы на Желтые страницы.
  • КрасивыйСуп – Анализирует ответы HTML/XML

Шаг 2 – Импорт библиотек

Теперь импортируйте библиотеки:

import requests
from bs4 import BeautifulSoup

Мы также импортируем такие библиотеки, как JSON, CSV и Time позже, для дополнительной функциональности.

Шаг 3 – Получите учетные данные прокси

Получите учетные данные аутентификации для Smartproxy:

proxy = ‘http://customer:[email protected]:2222‘ 

Замените customer и password с вашим реальным именем пользователя и паролем. Это позволит вам аутентифицироваться для использования прокси-сети Smartproxy.

Шаг 4 – Получение страницы списков

Чтобы получить страницу списков Желтых страниц, создайте GET запросите и передайте прокси:

url = ‘https://www.yellowpages.ca/search/si/1/Restaurants/Toronto+ON‘

response = requests.get(url, proxies={"http": proxy, "https": proxy})
soup = BeautifulSoup(response.text, ‘html.parser‘) 

Мы используем прокси как для HTTP, так и для HTTPS-запросов. Это возвращает исходный HTML-код страницы, который мы теперь можем проанализировать.

Шаг 5 – Извлечение данных о листинге

Давайте извлечем ключевые данные для каждого списка компаний на странице:

for listing in soup.select(‘.v-card‘):

  name = listing.find(‘a‘, class_=‘business-name‘).text

  address = listing.find(‘span‘, itemprop=‘address‘).text

  phone = listing.find(‘div‘, itemprop=‘telephone‘).text

  print(name, address, phone)

Мы используем селекторы CSS для выбора конкретных элементов HTML, содержащих название компании, адрес и номер телефона.

Шаг 6 – Разбивка результатов на страницы

Чтобы парсить несколько страниц списков, нам нужно разбить запросы на страницы:

for page in range(1, 11):

  url = f‘https://www.yellowpages.ca/search/si/{page}/Restaurants/Toronto+ON‘

  response = requests.get(url, proxies=proxy)

  # Extract data from page

  time.sleep(5)

Здесь мы просматриваем 10 страниц, вводя задержку, чтобы не перегружать сервер.

Шаг 7 – Сохраните очищенные данные

Давайте сохраним очищенную информацию о листинге в файл CSV:

import csv

with open(‘listings.csv‘, ‘w‘) as file:

  writer = csv.writer(file)

  writer.writerow([‘Name‘, ‘Address‘, ‘Phone‘])

  for listing in listings:
    writer.writerow([listing[‘name‘], listing[‘address‘], listing[‘phone‘]])

Данные также можно сохранить в формате JSON или вставить в базу данных, например MySQL/MongoDB.

Шаг 8 – Очистите дополнительные детали

Чтобы получить дополнительную информацию, такую ​​как часы работы и рейтинги, нам придется очистить отдельную страницу каждого объявления:

url = ‘https://www.yellowpages.ca/bus/Ontario/Toronto/Pet-Valu-Canada-Inc/3144282.html‘

response = requests.get(url, proxies=proxy)
soup = BeautifulSoup(response.text, ‘html.parser‘)

hours = soup.find(‘div‘, class_=‘hours‘).text
rating = soup.find(‘span‘, itemprop=‘ratingValue‘).text  

Здесь мы извлекаем страницу, затем извлекаем часы и элементы рейтинга.

Устранение распространенных проблем

При очистке вы можете столкнуться с такими проблемами, как ошибки 404, CAPTCHA и заблокированные IP-адреса. Вот несколько способов их устранения:

  • Ошибки 404 – Дважды проверьте URL-адрес и повторите попытку позже, поскольку страницы могут быть временно удалены.
  • IP-блоки – Быстро меняйте прокси, используя пул Smartproxy из более чем 25,000 XNUMX IP-адресов, чтобы избежать банов.
  • CAPTCHAs – Используйте сервис очистки данных, такой как BrightData, который может автоматически решать CAPTCHA.
  • JavaScript-контент – Такие сервисы, как ScrapeHero, могут отображать JS для извлечения динамически загружаемых данных.

Очистка этики и законности

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

  • Относитесь к парсингу ответственно и минимизируйте нагрузку на сервер.
  • Не крадите собственный контент, изображения или товарные знаки.
  • Уважайте robots.txt и любые запросы на блокировку.
  • Не используйте данные в неэтичных целях, таких как взлом или преследование.

Теперь, когда вы знаете, как надежно извлекать данные из «Желтых страниц» в любом масштабе, возможности безграничны! Вы можете интегрировать эти парсеры в приложения бизнес-аналитики или объединить их с данными из других источников. Соблюдение надлежащей этики и соблюдение Правил обслуживания является ключевым моментом.

Дополнительные ресурсы

Присоединяйтесь к беседе

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *