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