Yellow Pages — это служба каталогов, которая содержит списки предприятий в различных отраслях. Изначально она была печатным справочником, в котором предприятия были перечислены в алфавитном порядке вместе с их контактной информацией. Со временем Yellow Pages превратился в онлайн-платформу, что упростило пользователям поиск конкретных предприятий по их местоположению, отрасли или ключевым словам.

Yellow Pages — это важный источник информации для компаний, которые ищут потенциальных клиентов, поставщиков или партнеров в своей отрасли. С миллионами компаний, перечисленных на Yellow Pages, он стал сокровищницей данных для маркетологов, исследователей и компаний, ищущих конкурентное преимущество.

Yellow Pages ежедневно получает существенный объем онлайн-трафика. Его удобный интерфейс и всеобъемлющий охват способствовали тому, что значительное количество посетителей искали местные услуги, продукты и контактную информацию.

Статистика трафика Желтых страниц

Независимо от того, являетесь ли вы предпринимателем, желающим исследовать новые рынки, маркетологом, стремящимся уточнить свою целевую аудиторию, или энтузиастом данных, стремящимся раскрыть тенденции, сбор данных Yellow Pages — это ваш шлюз к действенным идеям. В этом руководстве мы проведем вас через процесс эффективного извлечения ценных данных из Yellow Pages с использованием Python с общим подходом, а затем с мощным Crawlbase Crawling API.

Давайте начнем!

Оглавление

  1. Понимание желтых страниц для сбора данных
  • Навигация по структуре SERP желтых страниц
  • Ключевые данные на желтых страницах
  • Актуальность и применение данных «Желтых страниц»
  1. Настройка среды Python
  • Установка Python и необходимых библиотек
  • Выбор IDE для эффективного кодирования
  1. Общий подход к извлечению данных из желтых страниц
  • Использование библиотеки запросов Python
  • Проверка веб-сайта Yellow Pages на наличие HTML-элементов
  • Разбор HTML с помощью BeautifulSoup
  • Проблемы и ограничения общего подхода
  1. . Crawling API для Желтых страниц
  • Преимущества выбора CrawlbaseАвтора Crawling API
  • Crawlbase Регистрация и API-токен
  • Взаимодействие с Crawling API . Crawlbase Библиотека
  • Извлечение деловой информации из желтых страниц
  • Управление пагинацией для расширенного извлечения данных
  1. Заключение
  2. Часто задаваемые вопросы (FAQ):

Понимание желтых страниц для сбора данных

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

Понимание структуры страницы результатов поиска Yellow Pages (SERP) имеет решающее значение для эффективного извлечения данных. Давайте отправимся в путешествие по макету SERP Yellow Pages, раскрывая потенциал для извлечения ценной деловой информации.

  • Ввод поискового запроса: В основе SERP Yellow Pages лежит поисковый запрос, где пользователи вводят ключевые слова, связанные с искомым бизнесом или услугой. Yellow Pages организует результаты поиска на основе этих запросов, что делает крайне важным выбор точных и релевантных ключевых слов для эффективного извлечения данных.
  • О компании: Yellow Pages представляет результаты поиска в виде списков предприятий. Каждый список содержит основные данные, такие как название предприятия, контактную информацию, адрес и категории услуг. Структурированное отображение позволяет пользователям быстро сканировать и идентифицировать предприятия, соответствующие их поиску.
  • Нумерация страниц: Yellow Pages организует результаты поиска на нескольких страницах, реализуя систему пагинации. Пользователи могут перемещаться по разным страницам, чтобы получить доступ к более широкому спектру бизнес-листингов. Для скраперов данных обработка пагинации становится решающим шагом для обеспечения комплексного извлечения данных.
  • Дополнительные фильтры: Для улучшения пользовательского опыта Yellow Pages предлагает дополнительные фильтры. Пользователи могут уточнить свой поиск, применив фильтры, такие как местоположение, категория бизнеса и рейтинги клиентов. Для скрапера понимание и навигация по этим фильтрам становятся необходимыми для целевого извлечения данных.
  • Интеграция карты: Yellow Pages интегрирует функцию карты в свой SERP, предоставляя пользователям визуальное представление местоположений предприятий. Для сборщиков данных извлечение геопространственных данных из этих карт может добавить дополнительный слой ценной информации для различных аналитических целей.

Понимание этих компонентов SERP «Желтых страниц» закладывает основу для эффективного извлечения данных.

Ключевые данные на желтых страницах

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

Данные для извлечения из желтых страниц

Наименование фирмы: Идентификация предприятий основана на точном извлечении названий предприятий. Это служит основным идентификатором, гарантируя хорошо структурированный набор данных.

Контактная информация: Извлечение контактных данных, таких как номера телефонов и адреса электронной почты, имеет решающее значение для облегчения общения с клиентами или взаимодействия с ними.

Адрес: Извлечение адресов позволяет проводить геопространственный анализ, помогая понять распределение бизнеса и популярные зоны.

Бизнес Категории: Определение категории бизнеса или типа отрасли имеет важное значение для создания сегментированных наборов данных и отраслевого анализа.

Рейтинги и обзоры: Анализ пользовательских оценок и отзывов дает представление о репутации и качестве бизнеса, отражая настроения клиентов.

ссылка на сайт: Извлечение URL-адресов веб-сайтов позволяет глубже изучить предприятия и понять их онлайн-предложения.

Дополнительные Услуги: выделение дополнительных услуг, предлагаемых компаниями, добавляет глубину профилям, помогая пользователям понять весь спектр услуг.

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

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

Настройка среды Python

Чтобы подготовиться к извлечению данных из Yellow Pages, обеспечьте себе плавный процесс кодирования, настроив среду Python. Это включает установку Python, необходимых библиотек и выбор IDE для оптимизированного кодирования.

Установка Python и необходимых библиотек

Загрузите и установите Python:

Начните с посещения официальный сайт Python и переходим в раздел «Загрузки». Выберите последнюю версию, совместимую с вашей операционной системой, и следуйте инструкциям по установке. Убедитесь, что во время установки выбрана опция добавления Python в PATH вашей системы.

Установка необходимых библиотек:

Для извлечения данных из «Желтых страниц» мы будем использовать такие необходимые библиотеки, как запросы и BeautifulSoup на Python. Чтобы использовать Crawling API, мы воспользуемся crawlbase библиотека. Откройте командную строку или терминал и используйте следующие команды для установки этих библиотек:

1
2
3
запросы на установку pip
Пип установить BeautifulSoup4
pip установить crawlbase

Эти библиотеки позволят вашим скриптам Python отправлять HTTP-запросы и эффективно анализировать HTML-контент.

Выбор IDE для эффективного кодирования

Выбор правильной интегрированной среды разработки (IDE) может значительно улучшить ваш опыт кодирования. Вот несколько популярных вариантов:

PyCharm: PyCharm — это надежная IDE, разработанная специально для Python. Она предоставляет такие функции, как интеллектуальное завершение кода, инструменты отладки и удобный интерфейс. Вы можете бесплатно загрузить Community Edition с веб-сайта JetBrains.

VSCode (код Visual Studio): VSCode — легкий, но мощный редактор кода с отличной поддержкой Python. Он предлагает широкий спектр расширений, что делает его настраиваемым для разных языков программирования. Вы можете загрузить его с официального сайта Visual Studio Code.

Jupyter Notebook: Для более интерактивного кодирования, особенно для задач анализа данных, Jupyter Notebooks являются популярным выбором. Вы можете установить Jupyter с помощью команды pip install jupyter и запустите его с помощью jupyter notebook команда.

Выберите IDE, которая соответствует вашим предпочтениям и рабочему процессу. Установив Python и подготовив необходимые библиотеки, вы будете полностью готовы к путешествию по извлечению ценных данных из Yellow Pages с помощью Python.

Общий подход к извлечению данных из желтых страниц

В этом разделе мы рассмотрим общий подход к извлечению данных из Yellow Pages с помощью Python. Мы воспользуемся такими важными библиотеками, как Requests для создания HTTP-запросов и BeautifulSoup для анализа HTML-контента.

В нашем примере сосредоточимся на сборе данных, относящихся к предприятиям сферы «Информационные технологии», расположенным в «Лос-Анджелесе, Калифорния».

Использование библиотеки запросов Python

Чтобы инициировать процесс скрапинга, мы будем использовать библиотеку Requests для отправки HTTP-запросов на серверы Yellow Pages. Эта библиотека позволяет нам извлекать HTML-контент веб-страниц, формируя основу для извлечения данных.

Желтые страницы используют search_terms параметр в URL для поискового запроса и geo_location_terms параметр местоположения.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Импортировать Запросы
от urllib.parse Импортировать урленкод

# Пример поискового запроса и местоположения
поисковый_запрос = "Информационные технологии"
местоположение = "Лос-Анджелес, Калифорния"

# Составление URL-адреса с учетом поисковых запросов и местоположения
базовый_url = "https://www.yellowpages.com/search?"
параметры = {"поисковые_термины": поисковый_запрос, "гео_локационные_термины": расположение}
url = base_url + urlencode(параметры)

ответ = запросы.get(url)

if ответ.status_code == 200:
html_content = ответ.текст

# Дальнейшая обработка HTML-контента
Распечатать(html_контент)
еще:
Распечатать(f"Не удалось загрузить страницу. Код статуса: {response.status_code}")

Откройте ваш любимый текстовый редактор или IDE, скопируйте предоставленный код и сохраните его в файле Python. Например, назовите его yellowpages_scraper.py.

Запустите скрипт:

Откройте терминал или командную строку и перейдите в каталог, в котором вы сохранили yellowpages_scraper.py. Выполните скрипт с помощью следующей команды:

1
python_yellowpages_scraper.py

После нажатия клавиши Enter ваш скрипт оживет, отправит запрос на сайт Yellow Pages, получит HTML-контент и отобразит его на вашем терминале.

Вывод HTML-снимка

Проверка веб-сайта «Желтые страницы» на наличие элементов HTML:

После того, как у нас есть HTML-контент, нам нужно проверить структуру веб-сайта Yellow Pages, чтобы определить соответствующие HTML-элементы. Это включает в себя понимание Document Object Model (DOM) страницы и определение элементов, содержащих нужные данные.

Желтые страницы HTML

Для эффективного изучения сайта «Желтые страницы» следуйте этим пунктам:

Щелкните правой кнопкой мыши и выберите «Проверить».: Откройте Инструменты разработчика, щелкнув правой кнопкой мыши на веб-странице.
Навигация по дереву DOM: Изучите объектную модель документа (DOM), чтобы найти теги HTML.
Определите уникальные атрибуты: Ищите уникальные атрибуты, такие как имена классов или идентификаторы.
Использовать селекторы: Используйте селекторы CSS для точной идентификации элементов.
Рассмотрите возможность пагинации: Проверка элементов пагинации для нескольких страниц.
Учетная запись для динамического контента: Помните о динамически загружаемом контенте с помощью JavaScript.
Выводы документа: Запишите выявленные элементы и закономерности для эффективного соскребания.

Разбор HTML с помощью BeautifulSoup

После определения соответствующих элементов HTML мы воспользуемся библиотекой BeautifulSoup для анализа HTML и извлечения нужных данных. BeautifulSoup предоставляет удобный способ навигации и поиска по дереву HTML.

Для примера мы извлечем существенные детали, такие как Название компании, контактная информация, адрес, категории компании, количество рейтингов и отзывов, количество лет в бизнесе и URL-адрес веб-сайта из каждого результата на YellowPages SERP. Теперь давайте улучшим наш существующий скрипт, чтобы собирать эту информацию непосредственно из HTML.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Импортировать Запросы
от urllib.parse Импортировать урленкод
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

защиту construct_url(запрос, местоположение):
базовый_url = "https://www.yellowpages.com/search?"
параметры = {"поисковые_термины": запрос, "гео_локационные_термины": расположение}
возвращают base_url + urlencode(параметры)

защиту fetch_html(URL):
ответ = запросы.get(url)
if ответ.status_code == 200:
возвращают ответ.текст
еще:
Распечатать(f"Не удалось загрузить страницу. Код статуса: {response.status_code}")
возвращают Ничто

защиту извлечь_подробности(html_контент):
очистил_данные = []

суп = КрасивыйСуп(html_content, 'html.парсер')

результаты = суп.выбрать('div#main-content div.search-results.organic div.result')

для результат in Результаты:
# Извлечение важных данных, таких как название компании, контактная информация, адрес и т. д.
название_бизнеса = результат.найти('а', класс_=«название-компании»)
контактная_информация = результат.найти('див', класс_='телефон')
адрес = результат.найти('див', класс_='адр')
бизнес_категории = результат.найти('див', класс_=«категории»)
рейтинги = результат.найти('див', класс_='результат-рейтинг')
reviews_count = результат.найти('охватывать', класс_='считать')
годы_в_бизнесе = результат.выберите_один('div.badges div.years-with-yp > div.count strong')
веб-сайт_url = результат.найти('а', класс_='отслеживать-посещение-сайта')

result_details = {
«Название компании»: название_бизнеса.текст.strip() if название_бизнеса еще Ничто,
"Контактная информация": контактная_информация.текст.полоска() if Контактная информация еще Ничто,
"Адрес": адрес.текст.полоска() if адрес еще Ничто,
«Бизнес-категории»: business_categories.text.strip() if бизнес_категории еще Ничто,
"Рейтинги": ''.присоединиться(рейтинги.получить('класс', [])).заменять('результат-рейтинг', '').strip().replace('', ' & ') if рейтинги еще Ничто,
«Количество отзывов»: reviews_count.text.strip() if reviews_count еще Ничто,
«Годы в бизнесе»: годы_в_бизнесе.текст.strip() if годы_в_бизнесе еще Ничто,
"URL-адрес веб-сайта": вебсайт_url.get('href').полоска() if веб-сайт_url еще Ничто
}
scraped_data.append(result_details)

возвращают скопированные_данные

защиту main():
# Пример поискового запроса и местоположения
поисковый_запрос = "Информационные технологии"
местоположение = "Лос-Анджелес, Калифорния"

# Составление URL-адреса с учетом поисковых запросов и местоположения
search_url = construct_url(поисковый_запрос, местоположение)

# Извлечение HTML-контента из YellowPages SERP
html_content = fetch_html(search_url)

if html_контент:
# Извлечение основных данных из HTML-контента
results_detail = extract_details(html_content)
Распечатать(json.dumps(results_detail, indent=2))
еще:
Распечатать(«Выход из-за ошибки при получении HTML».)

if __имя__ == "__основной__":
Основной ()

Скрипт включает функции для построения URL поиска, извлечения HTML-контента и извлечения деталей из HTML. Если элемент не найден во время извлечения, соответствующее значение в словаре результатов устанавливается на None. Основная функция организует весь процесс и выводит извлеченные детали для указанного поискового запроса и местоположения.None

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[
{
«Название компании»: "LA Computer Works",
"Контактная информация": "(310) 277-9799",
"Адрес": "2355 Westwood BlvdЛос-Анджелес, Калифорния 90064",
«Бизнес-категории»: «Услуги технической поддержки и компьютерной помощиДилеры компьютеров и оборудованияКомпьютеры и компьютерное оборудование - Обслуживание и ремонт»,
"Рейтинги": "четыре с половиной",
«Количество отзывов»: "(2)",
«Годы в бизнесе»: "12 Years",
"URL-адрес веб-сайта": "http://lacomputerworks.com"
},
{
«Название компании»: «Завоевание рабочего стола»,
"Контактная информация": "(213) 321-1869",
"Адрес": "Лос-Анджелес, Калифорния 90057",
«Бизнес-категории»: «Услуги технической помощи и поддержки компьютеровПроектирование и системы компьютерных сетейПроектировщики и консультанты компьютерных систем»,
"Рейтинги": нуль,
«Количество отзывов»: нуль,
«Годы в бизнесе»: нуль,
"URL-адрес веб-сайта": нуль
},
{
«Название компании»: «My Computer Works Inc.»,
"Контактная информация": "(877) 221-0118",
"Адрес": нуль,
«Бизнес-категории»: «Услуги технической помощи и поддержки компьютеровПрограммное обеспечение и услуги для компьютеровКомпьютеры и компьютерное оборудование — обслуживание и ремонт»,
"Рейтинги": "четыре с половиной",
«Количество отзывов»: "(43)",
«Годы в бизнесе»: "2 Years",
"URL-адрес веб-сайта": нуль
},
{
«Название компании»: «ПРОФИ ПК И ВЕБ»,
"Контактная информация": "(888) 823-7767",
"Адрес": "AllLos Angeles, CA 90045",
«Бизнес-категории»: «Услуги технической поддержки и компьютерной помощиУстановка компьютерных кабелей и проводовИнтернет-маркетинг и реклама»,
"Рейтинги": "пять",
«Количество отзывов»: "(3)",
«Годы в бизнесе»: нуль,
"URL-адрес веб-сайта": нуль
},
{
«Название компании»: «Новый век»,
"Контактная информация": "(310) 657-8632",
"Адрес": "822 S Robertson Blvd Ste 207Лос-Анджелес, Калифорния 90035",
«Бизнес-категории»: «Услуги технической помощи и поддержки компьютеров»,
"Рейтинги": "один",
«Количество отзывов»: "(1)",
«Годы в бизнесе»: нуль,
"URL-адрес веб-сайта": "http://www.excelclasses.net"
},
..... более
]

Проблемы и ограничения общего подхода

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

Меры против царапин
Yellow Pages применяет меры по борьбе со взломом, включая CAPTCHA, которые могут препятствовать работе автоматизированных скриптов взлома и требуют ручного вмешательства.

Ограничение скорости
Веб-сайты реализуют ограничение скорости для контроля частоты запросов. Превышение лимитов может привести к временным или постоянным блокировкам IP, ограничивая доступ.

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

Блокировка IP
Агрессивный скрапинг может вызвать блокировку IP, что затруднит дальнейший доступ. Для преодоления блокировок IP часто необходимы автоматизированные решения.

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

Для более удобного и надежного извлечения данных из Желтых страниц рассмотрите возможность использования Crawlbase Crawling API, разработанный для преодоления распространенных препятствий при очистке и улучшения общего процесса.

. Crawling API для Желтых страниц

Раскройте весь потенциал извлечения данных из «Желтых страниц», используя возможности CrawlbaseАвтора Crawling APIЭтот удобный подход легко интегрируется в ваш проект Python, обеспечивая повышенную эффективность и надежность.

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

Воспользуйтесь комплексным документации и отзывчивый поддержка, оптимизируя ваш опыт парсинга для максимальной эффективности. Поднимите ваши усилия по парсингу Желтых страниц с помощью CrawlbaseАвтора Crawling API – надежное решение для точного и масштабируемого веб-скрапинга.

Выполните эти простые шаги, чтобы без труда интегрировать API в свой проект по парсингу Python и ощутить новый уровень удобства и производительности парсинга.

Crawlbase Регистрация и API-токен

Чтобы начать свое путешествие с Crawlbase и использовать силу его Crawling API Для извлечения данных из «Желтых страниц» выполните следующие простые шаги:

  1. Войти Crawlbase Платформа: Голова к Crawlbase платформу, посетив их веб-сайт.
  2. Зарегистрироваться: Подписаться для Crawlbase аккаунт. Этот процесс обычно включает предоставление действительного адреса электронной почты и создание надежного пароля.
  3. Изучите планы (если применимо): В зависимости от ваших требований, изучите доступные планы на Crawlbase. Выберите план, который соответствует масштабу и сфере охвата вашего проекта по парсингу Желтых страниц. Первые 1000 запросов бесплатны. Карта не требуется.
  4. Получите свой API-токен: Вы можете найти свой в вашем документация по счету. Эта буквенно-цифровая строка имеет решающее значение для аутентификации ваших запросов к Crawling API.

Быстрая заметка: Crawlbase предоставляет два типа токенов — один, предназначенный для статических веб-сайтов, и другой, разработанный для динамических или JavaScript-ориентированных веб-сайтов. Поскольку мы сосредоточены на скрапинге Yellow Pages, мы будем использовать Normal token.

Взаимодействие с Crawling API . Crawlbase Библиотека

На основе Python Crawlbase Библиотека бесшовно обеспечивает взаимодействие с API, без усилий интегрируя его в ваши усилия по извлечению YellowPages. Следующий фрагмент кода иллюстрирует процесс инициализации и использования Crawling API через Crawlbase Библиотека Python.

1
2
3
4
5
6
7
8
9
10
11
12
13
от база сканирования Импортировать CrawlingAPI

API_ТОКЕН = 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'
crawling_api = CrawlingAPI({токен: API_ТОКЕН})

URL = "https://www.example.com/"
ответ = crawling_api.get(url)

if ответ["заголовки"]['статус_ПК'] == '200':
html_content = ответ['тело'].decode('utf-8')
Распечатать(html_контент)
еще:
Распечатать(f"Не удалось загрузить страницу. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}")

Для получения подробной информации о Crawling API, обратитесь к полной документации, доступной на Crawlbase Платформа. Доступ к ней здесь. Чтобы глубже изучить возможности Crawlbase Библиотека Python и изучите дополнительные примеры использования, ознакомьтесь с документацией здесь.

Извлечение деловой информации из желтых страниц

Интегрировать Crawlbase библиотеку в ваш проект Python и инициализируйте ее с вашим уникальным API-токеном. Это гарантирует безопасный и аутентифицированный доступ к Crawling API.

Давайте улучшим наш общий сценарий, внеся в него Crawling API.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
от база сканирования Импортировать CrawlingAPI
от urllib.parse Импортировать урленкод
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

защиту construct_url(запрос, местоположение):
базовый_url = "https://www.yellowpages.com/search?"
параметры = {"поисковые_термины": запрос, "гео_локационные_термины": расположение}
возвращают base_url + urlencode(параметры)

защиту fetch_html(API, URL-адрес):
ответ = api.get(url)

if ответ["заголовки"]['статус_ПК'] == '200':
возвращают ответ['тело'].decode('utf-8')
еще:
Распечатать(f"Не удалось загрузить страницу. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

защиту извлечь_подробности(html_контент):
очистил_данные = []

суп = КрасивыйСуп(html_content, 'html.парсер')

результаты = суп.выбрать('div#main-content div.search-results.organic div.result')

для результат in Результаты:
# Извлечение важных данных, таких как название компании, контактная информация, адрес и т. д.
название_бизнеса = результат.найти('а', класс_=«название-компании»)
контактная_информация = результат.найти('див', класс_='телефон')
адрес = результат.найти('див', класс_='адр')
бизнес_категории = результат.найти('див', класс_=«категории»)
рейтинги = результат.найти('див', класс_='результат-рейтинг')
reviews_count = результат.найти('охватывать', класс_='считать')
годы_в_бизнесе = результат.выберите_один('div.badges div.years-with-yp > div.count strong')
веб-сайт_url = результат.найти('а', класс_='отслеживать-посещение-сайта')

result_details = {
«Название компании»: название_бизнеса.текст.strip() if название_бизнеса еще Ничто,
"Контактная информация": контактная_информация.текст.полоска() if Контактная информация еще Ничто,
"Адрес": адрес.текст.полоска() if адрес еще Ничто,
«Бизнес-категории»: business_categories.text.strip() if бизнес_категории еще Ничто,
"Рейтинги": ''.присоединиться(рейтинги.получить('класс', [])).заменять('результат-рейтинг', '').strip().replace('', ' & ') if рейтинги еще Ничто,
«Количество отзывов»: reviews_count.text.strip() if reviews_count еще Ничто,
«Годы в бизнесе»: годы_в_бизнесе.текст.strip() if годы_в_бизнесе еще Ничто,
"URL-адрес веб-сайта": вебсайт_url.get('href').полоска() if веб-сайт_url еще Ничто
}
scraped_data.append(result_details)

возвращают скопированные_данные

защиту main():
API_ТОКЕН = 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'
crawling_api = CrawlingAPI({токен: API_ТОКЕН})

# Пример поискового запроса и местоположения
поисковый_запрос = "Информационные технологии"
местоположение = "Лос-Анджелес, Калифорния"

# Составление URL-адреса с учетом поисковых запросов и местоположения
search_url = construct_url(поисковый_запрос, местоположение)

# Извлечение HTML-контента из SERP YellowPages с помощью Crawlbase Crawling API
html_content = fetch_html(api_сканирования, search_url)

if html_контент:
# Извлечение основных данных из HTML-контента
results_detail = extract_details(html_content)
Распечатать(json.dumps(results_detail, indent=2))
еще:
Распечатать(«Выход из-за ошибки при получении HTML».)

if __имя__ == "__основной__":
Основной ()

Этот обновленный код интегрирует Crawlbase Crawling API для извлечения HTML-контента, обеспечивая надежный и эффективный процесс извлечения.

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[
{
«Название компании»: "LA Computer Works",
"Контактная информация": "(310) 277-9799",
"Адрес": "2355 Westwood BlvdЛос-Анджелес, Калифорния 90064",
«Бизнес-категории»: «Услуги технической поддержки и компьютерной помощиДилеры компьютеров и оборудованияКомпьютеры и компьютерное оборудование - Обслуживание и ремонт»,
"Рейтинги": "четыре с половиной",
«Количество отзывов»: "(2)",
«Годы в бизнесе»: "12 Years",
"URL-адрес веб-сайта": "http://lacomputerworks.com"
},
{
«Название компании»: «Завоевание рабочего стола»,
"Контактная информация": "(213) 321-1869",
"Адрес": "Лос-Анджелес, Калифорния 90057",
«Бизнес-категории»: «Услуги технической помощи и поддержки компьютеровПроектирование и системы компьютерных сетейПроектировщики и консультанты компьютерных систем»,
"Рейтинги": нуль,
«Количество отзывов»: нуль,
«Годы в бизнесе»: нуль,
"URL-адрес веб-сайта": нуль
},
{
«Название компании»: «My Computer Works Inc.»,
"Контактная информация": "(877) 221-0118",
"Адрес": нуль,
«Бизнес-категории»: «Услуги технической помощи и поддержки компьютеровПрограммное обеспечение и услуги для компьютеровКомпьютеры и компьютерное оборудование — обслуживание и ремонт»,
"Рейтинги": "четыре с половиной",
«Количество отзывов»: "(43)",
«Годы в бизнесе»: "2 Years",
"URL-адрес веб-сайта": нуль
},
{
«Название компании»: «ПРОФИ ПК И ВЕБ»,
"Контактная информация": "(888) 823-7767",
"Адрес": "AllLos Angeles, CA 90045",
«Бизнес-категории»: «Услуги технической поддержки и компьютерной помощиУстановка компьютерных кабелей и проводовИнтернет-маркетинг и реклама»,
"Рейтинги": "пять",
«Количество отзывов»: "(3)",
«Годы в бизнесе»: нуль,
"URL-адрес веб-сайта": нуль
},
{
«Название компании»: «Новый век»,
"Контактная информация": "(310) 657-8632",
"Адрес": "822 S Robertson Blvd Ste 207Лос-Анджелес, Калифорния 90035",
«Бизнес-категории»: «Услуги технической помощи и поддержки компьютеров»,
"Рейтинги": "один",
«Количество отзывов»: "(1)",
«Годы в бизнесе»: нуль,
"URL-адрес веб-сайта": "http://www.excelclasses.net"
},
..... более
]

Управление пагинацией для расширенного извлечения данных

Обработка пагинации является важнейшим аспектом извлечения обширных данных из Yellow Pages, где результаты охватывают несколько страниц. Yellow Pages обычно использует параметр страницы в URL для обозначения различных страниц результатов. Давайте улучшим предыдущий код Python, чтобы легко включить пагинацию:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
от база сканирования Импортировать CrawlingAPI
от urllib.parse Импортировать урленкод
от bs4 Импортировать КрасивыйСуп

защиту construct_url(запрос, местоположение, page_number):
базовый_url = "https://www.yellowpages.com/search?"
параметры = {"поисковые_термины": запрос, "гео_локационные_термины": расположение, "страница": номер_страницы}
возвращают base_url + urlencode(параметры)

защиту fetch_html(API, URL-адрес):
# ... (без изменений)

защиту извлечь_подробности(html_контент):
# ... (без изменений)

защиту очистить_желтые_страницы(API, поисковый_запрос, местоположение, максимальное_количество_страниц):
для номер страницы in ассортимент(1, макс_страницы + 1):
search_url = construct_url(поисковый_запрос, местоположение, номер_страницы)
html_content = fetch_html(api, search_url)

if html_контент:
result_details = extract_details(html_content)
Распечатать(f"Подробности со страницы {номер_страницы}:", result_details)
еще:
Распечатать(f"Выход из-за неудачного получения HTML на странице {номер_страницы}.")

защиту main():
API_ТОКЕН = 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'
crawling_api = CrawlingAPI({токен: API_ТОКЕН})

# Пример поискового запроса, местоположение и максимальное количество страниц для парсинга
поисковый_запрос = "Информационные технологии"
местоположение = "Лос-Анджелес, Калифорния"
макс_страницы = 5 # При необходимости отрегулируйте количество страниц для очистки.

# Очистка желтых страниц с помощью пагинации
scrape_yellow_pages(crawling_api, search_query, location, max_pages)

if __имя__ == "__основной__":
Основной ()

Этот улучшенный сценарий представляет page параметр в созданном URL, позволяющий беспрепятственно извлекать данные из нескольких страниц YellowPages. Отрегулируйте max_pages варьируется в зависимости от ваших требований к расширенному поиску данных.

Заключение

Процесс сбора данных из «Желтых страниц» стал более простым благодаря эффективности Crawlbase Crawling API. Устраняя распространенные проблемы, связанные с веб-скрапингом, такие как IP-блокировки и CAPTCHA, Crawlbase обеспечивает плавный и надежный опыт. Упростите процесс извлечения данных с помощью Crawlbase и раскройте весь потенциал парсинга «Желтых страниц».

Вот еще несколько руководств, которые могут вас заинтересовать:

Как скопировать Yelp
Как скрейпить Expedia
Как извлечь данные о недвижимости из Zillow
Как извлечь новостные статьи из BloomBerg
Как собирать вопросы Stackoverflow

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

Часто задаваемые вопросы (FAQ):

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

В. Как предотвратить блокировку IP-адреса при извлечении данных из «Желтых страниц»?

Чтобы снизить риск блокировки IP-адресов во время парсинга желтых страниц, необходимо использовать эффективные стратегии. Такие методы, как ротация IP-адресов и введение случайных задержек между запросами может помочь. Crawlbase Crawling API предлагает расширенные функции, такие как Ротация IP, что снижает вероятность блокировки и обеспечивает более плавный процесс парсинга.

В. Применяет ли Yellow Pages меры по борьбе со взломом, такие как капчи?

Да, Yellow Pages может использовать антискрейпинговые меры, включая капчи, для защиты своих данных. При использовании общего подхода к скрапингу возможно столкновение с капчами. Однако, Crawlbase Crawling API оснащен всем необходимым для беспроблемного решения подобных задач, предлагая эффективное решение, которое сводит к минимуму ручное вмешательство и обеспечивает надежное извлечение данных.

В. Могу ли я извлекать данные из «Желтых страниц» в больших масштабах с помощью Crawlbase Crawling API?

Абсолютно Crawlbase Crawling API специально разработан для масштабируемый веб-скрапинг. Он включает в себя такие функции, как обработка пагинации, асинхронное сканирование и ротация IP-адресов, что делает его очень подходящим для извлечения обширных данных из желтых страниц и других веб-сайтов. Эта масштабируемость обеспечивает эффективность и надежность даже при работе с большими наборами данных.

В. Как извлечь данные из «Желтых страниц» в Excel?

Извлечение данных из «Желтых страниц» и сохранение их в Excel — простой процесс с CrawlbaseАвтора Crawling API, Следуй этим шагам:

  1. Извлечение данных: Использовать Crawling API для извлечения данных из «Желтых страниц», гарантируя получение вами необходимой информации.
  2. Формат данных: Организуйте извлеченные данные в подходящую структуру. Например, у вас может быть список словарей, где каждый словарь представляет детали бизнеса.
  3. Экспорт в Excel: Используйте библиотеки Python, такие как pandas, для преобразования структурированных данных в формат, удобный для Excel. Pandas предоставляет функции, такие как to_excel, которые упрощают этот процесс.
1
2
3
4
5
Импортировать панд as pd

# Предположим, что «данные» — это ваши структурированные
данные df = pd.DataFrame(данные)
df.to_excel('желтые_страницы_данные.xlsx', индекс=Ложь)
  1. Excel файла: Приведенный выше код создает файл Excel с именем yellow_pages_data.xlsx содержащий ваши извлеченные данные.

Помните, что это упрощенный пример, и могут потребоваться корректировки в зависимости от вашей конкретной структуры данных и требований. Ключевым моментом является использование библиотек Python для эффективной обработки процессов извлечения данных и форматирования Excel.