GoodFirms — это B2B-платформа, которая связывает компании с поставщиками ИТ-услуг и компаниями-разработчиками программного обеспечения. С тысячами проверенных профилей компаний, отзывов пользователей и подробностей GoodFirms — это универсальный магазин для лиц, принимающих решения, исследователей и маркетологов, чтобы исследовать тенденции отрасли, находить конкурентов, Нажмите на ссылку компании из результатов поиска. Нажмите на ссылку компании из результатов поиска. или находить партнеров.
GoodFirms имеет более 60,000 XNUMX профилей компаний и подробных списков в различных категориях, таких как разработка программного обеспечения, цифровой маркетинг, разработка мобильных приложений и т. д. Платформа известна своей мощной поисковой функцией и прозрачной системой отзывов, поэтому ее используют компании по всему миру.
В этом блоге мы расскажем вам, как извлечь данные с сайта GoodFirms с помощью Python и Crawlbase Crawling API. Давайте начнем!
Сбор данных GoodFirms может помочь компаниям, исследователям и разработчикам. Как надежная платформа с тысячами профилей компаний и подробными обзорами, GoodFirms располагает данными, которые можно использовать разными способами:
Анализ конкурентов: Получите представление об услугах, ценах и отзывах клиентов конкурентов.
Лидогенерация: Извлечение сведений о компании, таких как контактная информация, услуги и обслуживаемые отрасли.
Исследования рынка: Анализируйте тенденции отрасли, рассматривая наиболее эффективные компании и услуги.
Создание баз данных: Создайте структурированный репозиторий поставщиков ИТ-услуг для таких приложений, как рекомендательные системы или CRM.
Поиск талантов: Узнайте размер команды компании, обслуживаемые отрасли и операционный опыт, чтобы найти возможности для сотрудничества или найма.
Сравнительный анализ портфеля: Посмотрите, что делает проекты успешными, в портфолио компаний и тематических исследованиях.
Отслеживание тенденций: Изучите предпочтения клиентов и модели спроса на основе подробных обзоров и предлагаемых услуг.
Расширение бизнеса: Найдите потенциальные рынки или регионы для нацеливания, проанализировав местоположение компаний и региональные услуги.
С обширным набором данных GoodFirm у вас есть сокровищница данных для принятия решений на основе данных. Автоматизируя процесс извлечения, вы экономите время и получаете доступ к полной и актуальной информации.
Ключевые данные для извлечения из GoodFirms
При скрапинге GoodFirms вам нужно извлечь данные, которые дают представление о компаниях и их услугах. На изображении ниже показаны ключевые точки данных для извлечения:
Crawlbase Crawling API для GoodFirms Scraping
Crawlbase Crawling API хорош для парсинга статических сайтов, таких как GoodFirms. Он заботится о прокси, заголовках HTTP и обеспечивает высокую точность данных. С Crawlbase, вы можете извлекать данные из списков поиска GoodFirms и страниц профилей компаний, не беспокоясь о блокировках по IP или проблемах с CAPTCHA.
Сначала установите Crawlbase Библиотека Python. Используйте следующую команду:
1
pip установить crawlbase
После установки вам понадобится API токен. Вы можете получить свой токен, зарегистрировавшись на Crawlbase веб-сайт. Этот токен будет аутентифицировать ваши запросы.
Вот как инициализировать Crawlbase Crawling API в Python:
1 2 3 4 5 6 7 8 9 10 11
от база сканирования Импортировать CrawlingAPI
# Инициализируем Crawlbase Crawling API crawling_api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'})
# Проверьте свою настройку ответ = crawling_api.get(«https://www.goodfirms.co/companies») if ответ["заголовки"]['статус_ПК'] == '200': Распечатать(«Настройка выполнена успешно! Теперь вы готовы к парсингу GoodFirms».) еще: Распечатать(f"Не удалось подключиться. Код статуса: {ответ["заголовки"]['статус_ПК']}")
Примечание: Crawlbase предоставляет два типа токенов. Обычный токен для статических сайтов и JS-токен для JS-рендеренных сайтов. Для GoodFirms обычный токен будет работать нормально. Crawlbase предлагает 1,000 бесплатных запросов для своего Crawling API, Проверить документации больше.
Для пользователя
Crawlbase, вы можете собирать данные, не беспокоясь о технических препятствиях, таких как заблокированные IP или сложные заголовки. В следующем разделе мы рассмотрим настройку среды Python для сбора данных.
Подготовка к скрапингу GoodFirms
Прежде чем начать парсить GoodFirms, вам нужно настроить правильные инструменты и библиотеки. Этот раздел проведет вас через процесс установки требуемых библиотек и настройки среды Python для парсинга.
Необходимые инструменты и библиотеки
Для парсинга GoodFirms вам понадобится:
Питон: Благодаря простоте использования и надежным библиотекам Python является одним из лучших языков для веб-скрапинга.
Crawlbase Библиотека Python: Это облегчит ваш Crawlbase Crawling API звонки.
КрасивыйСуп: Библиотека Python для анализа HTML и извлечения из него данных.
Установка Python и необходимых библиотек
Если у вас не установлен Python, загрузите его здесь: python.org. После установки вы можете использовать pip для установки библиотек. Выполните следующие команды в терминале:
1 2
pip установить crawlbase Пип установить BeautifulSoup4
Эти библиотеки позволят вам взаимодействовать с Crawlbase Crawling API, анализировать HTML-контент из GoodFirms и эффективно обрабатывать запросы.
Как выбрать правильную IDE для веб-скрапинга
Для написания скрипта скрапинга вы можете использовать любую интегрированную среду разработки (IDE) или текстовый редактор. Вы можете выбрать между некоторыми популярными, такими как Код VS, PyCharm и Ноутбуки Jupyter.
Скрапинг списков поиска GoodFirms
Здесь мы рассмотрим, как извлекать списки поиска из GoodFirms. Это включает в себя проверку HTML, написание скрапера, обработку пагинации и сохранение извлеченных данных в файле JSON.
Проверка HTML для определения селекторов
Прежде чем начать скрапинг, нам нужно проверить HTML-структуру страницы списков поиска GoodFirms, чтобы получить селекторы CSS, которые мы будем использовать для извлечения данных. Выполните следующие шаги:
Откройте страницу поиска GoodFirms: Перейти к результатам поиска по категории на GoodFirms.
Осмотрите страницу: Щелкните правой кнопкой мыши на странице и выберите «Проверить» (или нажмите Ctrl + Shift + I).
Определите соответствующие данные: Найдите элементы HTML, содержащие информацию о компании. Общие точки данных включают:
Название компании: Обычно находится в пределах <h3> тег с классом firm-name.
Локация: Часто в <div> элемент с классом firm-location.
Категория услуг: Обычно в <div> элемент, вложенный в firm-content и под девизом класса.
Рейтинг: Отображается в <span> тег с классом rating-number.
URL-адрес профиля компании: Найдено в <a> тег с классом visit-profile.
После того, как вы определили соответствующие селекторы CSS, мы можем приступить к написанию скрапера.
Написание скребка для поиска GoodFirms
Давайте теперь напишем скрапер для извлечения данных о компании со страницы результатов поиска.
для Компания in компании: детали = extract_company_details(компания) company_data.append(подробности)
возвращают данные_компании
# Пример использования URL = "https://www.goodfirms.co/companies/web-development-agency/london" данные = scrape_goodfirms_search_listings(url)
Обработка нумерации страниц
GoodFirms использует page параметр в URL для навигации по списку поиска. Чтобы очистить все страницы, нам нужно обработать пагинацию, настроив page Параметр.
Вот как мы можем модифицировать скрапер для обработки пагинации:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
защитуочистить_все_страницы(базовый_url, num_pages=5): """Извлеките несколько страниц из результатов поиска GoodFirms.""" все_данные = []
для страница inассортимент(1, число_страниц + 1): URL = f"{базовый_url}?страница={страница}" Распечатать(f"Очистка страницы {страница}... ") данные = scrape_goodfirms_search_listings(url) all_data.расширить(данные)
После скрапинга данных важно сохранить их в формате, с которым легко работать. В этом случае мы сохраним данные в файле JSON для последующего использования или анализа.
1 2 3 4 5 6 7 8
защитусохранить_данные_в_json(данные, имя файла='goodfirms_search_data.json'): """Сохраните извлеченные данные в файл JSON.""" открытый(имя файла, 'w') as f: json.dump(данные, f, отступ=4) Распечатать(f"Данные сохранены в {имя файла}")
# Пример использования сохранить_данные_в_json(все_данные)
The save_data_to_json Функция сохранит данные в виде файла JSON, что упрощает их загрузку в базу данных или дальнейшую обработку.
Полный пример кода
Вот полный сборщик данных, который объединяет все: от создания запросов до обработки пагинации и хранения данных в файле JSON:
В следующем разделе мы подробно рассмотрим процесс извлечения данных из страниц профилей компаний.
Извлечение страниц профилей компаний GoodFirms
Извлечение страниц профилей компаний из GoodFirms дает вам больше информации об услугах компании, ее опыте, почасовых ставках, количестве сотрудников и т. д. В этом разделе мы подробно рассмотрим, как извлекать такие данные, хранить их и написать полный пример кода для внедрения.
Проверка HTML для определения селекторов
Первый шаг в парсинге профилей компаний — понять структуру страницы профиля. Выполните следующие шаги для проверки страницы:
Открыть страницу профиля компании: Нажмите на ссылку компании в результатах поиска.
Осмотрите страницу: Щелкните правой кнопкой мыши на странице и выберите «Проверить» (или нажмите Ctrl + Shift + I).
Определите соответствующие данные: Найдите элементы HTML, содержащие информацию о компании. Общие точки данных включают:
Название компании: Расположен в <h1> тег с атрибутом itemprop="name".
Описание: Найдено в <div> с классом profile-summary-text.
Почасовая ставка: Расположен в <div> с классом profile-pricing и вложенный <span> тег.
Количество работников: Найдено в <div> с классом profile-employees и вложенный <span> тег.
Год основания: Часть <div> с классом profile-founded и вложенный <span> тег.
Предлагаемые услуги: Извлечено из <ul> с классом services-chart-list, Где <button> теги содержат data-name атрибутов.
Извлечение ключевых данных из профилей GoodFirms
Вот как можно извлечь основные данные со страницы профиля компании GoodFirms с помощью Python, используя Crawlbase Crawling API и Красивый Суп:
от bs4 Импортировать КрасивыйСуп от база сканирования Импортировать CrawlingAPI Импортировать re
# Инициализация Crawlbase API с вашим токеном доступа crawling_api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'})
защитуmake_crawlbase_request(URL): """Извлеките HTML-содержимое страницы, используя Crawlbase.""" ответ = crawling_api.get(url)
if ответ["заголовки"]['статус_ПК'] == '200': html_content = ответ['тело'].decode('utf-8') возвращают html_контент еще: Распечатать(f"Не удалось загрузить страницу. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}") возвращаютНичто
защитуизвлечь_подробности_профиля(html_контент): """Извлечение подробной информации со страницы профиля компании.""" суп = КрасивыйСуп(html_content, 'html.парсер')
имя = суп.выберите_один('h1[itemprop="имя"]').текст.полоска() if суп.выберите_один('h1[itemprop="имя"]') еще«Н/Д» описание = re.sub(г'\с+', '', суп.выберите_один('div.profile-summary-text').текст.полоска()) if суп.выберите_один('div.profile-summary-text') еще«Н/Д» почасовая_ставка = суп.выберите_один('div.profile-pricing > диапазон').текст.полоска() if суп.выберите_один('div.profile-pricing > диапазон') еще«Н/Д» нет_работников = суп.выберите_один('div.profile-employees > span').текст.полоска() if суп.выберите_один('div.profile-employees > span') еще«Н/Д» год_основания = суп.выберите_один('div.profile-founded > span').текст.полоска() if суп.выберите_один('div.profile-founded > span') еще«Н/Д» услуги = [элемент['имя-данных'] для пункт in суп.выбрать(«кнопка списка ul.services-chart»)]
Извлеченные данные можно сохранить в структурированном формате, например JSON, для удобства обработки и использования в будущем.
1 2 3 4 5 6 7 8 9 10
Импортировать JSON
защитусохранить_профили_в_json(данные, имя файла='goodfirms_profiles.json'): """Сохранение данных профиля компании в файл JSON.""" открытый(имя файла, 'w') as f: json.dump(данные, f, отступ=4) Распечатать(f"Данные профиля сохранены в {имя файла}")
# Пример использования сохранить_профили_в_json(профили_данных)
Полный пример кода
Вот полная реализация, включая получение, извлечение и сохранение данных профиля:
от bs4 Импортировать КрасивыйСуп Импортировать JSON от база сканирования Импортировать CrawlingAPI Импортировать re
# Инициализация Crawlbase API с вашим токеном доступа crawling_api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА'})
защитуmake_crawlbase_request(URL): """Извлеките HTML-содержимое страницы, используя Crawlbase.""" ответ = crawling_api.get(url)
if ответ["заголовки"]['статус_ПК'] == '200': html_content = ответ['тело'].decode('utf-8') возвращают html_контент еще: Распечатать(f"Не удалось загрузить страницу. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}") возвращаютНичто
защитуизвлечь_подробности_профиля(html_контент): """Извлечение подробной информации со страницы профиля компании.""" суп = КрасивыйСуп(html_content, 'html.парсер')
имя = суп.выберите_один('h1[itemprop="имя"]').текст.полоска() if суп.выберите_один('h1[itemprop="имя"]') еще«Н/Д» описание = re.sub(г'\с+', '', суп.выберите_один('div.profile-summary-text').текст.полоска()) if суп.выберите_один('div.profile-summary-text') еще«Н/Д» почасовая_ставка = суп.выберите_один('div.profile-pricing > диапазон').текст.полоска() if суп.выберите_один('div.profile-pricing > диапазон') еще«Н/Д» нет_работников = суп.выберите_один('div.profile-employees > span').текст.полоска() if суп.выберите_один('div.profile-employees > span') еще«Н/Д» год_основания = суп.выберите_один('div.profile-founded > span').текст.полоска() if суп.выберите_один('div.profile-founded > span') еще«Н/Д» услуги = [элемент['имя-данных'] для пункт in суп.выбрать(«кнопка списка ul.services-chart»)]
защитуscrape_company_profiles(profile_urls): """Скопировать несколько профилей компаний.""" profiles_data = []
для URL in profile_urls: Распечатать(f"Профиль соскабливания: {URL}") html_content = make_crawlbase_request(url) if html_контент: подробности = extract_profile_details(html_content) profiles_data.append(подробности)
возвращают профили_данных
защитусохранить_профили_в_json(данные, имя файла='goodfirms_profiles.json'): """Сохранение данных профиля компании в файл JSON.""" открытый(имя файла, 'w') as f: json.dump(данные, f, отступ=4) Распечатать(f"Данные профиля сохранены в {имя файла}")
# Пример использования profile_urls = [ "https://www.goodfirms.co/company/unified-infotech", "https://www.goodfirms.co/company/sigli" ]
[ { "название":«Единая ИнфоТех», "описание":«Unified Infotech — 14-летний партнер по цифровой трансформации, удостоенный множества наград. Мы стремимся ускорить рост бизнеса с помощью новых технологий и оптимизированных цифровых процессов. Мы обслуживаем компании из списка Fortune 2019, многонациональные корпорации (МНК), малые и средние предприятия (МСП) и стартапы, выступая в качестве их всесторонних технологических союзников для индивидуальных веб-, мобильных и индивидуальных программных решений. Наша организация гордится своим консалтинговым подходом, определяя себя как «надежного партнера по цифровой трансформации». Мы воплощаем ценности Единого, Уверенного, Надежного и Трансформирующего. Единые в видении и исполнении, мы специализируемся на передовых программных решениях, которые обеспечивают бесшовную интеграцию и успех в цифровую эпоху. Наша уверенность подпитывает каждый проект, гарантируя надежные и инновационные результаты. Надежность лежит в основе наших услуг по цифровой трансформации, предоставляя комплексные решения, которые способствуют устойчивости и росту. С преобразующим духом мы революционизируем отрасли, расширение возможностей бизнеса для достижения непревзойденного роста и инноваций. Мы ваш надежный партнер для: Цифровая трансформация, разработка пользовательского веб-, мобильного и настольного программного обеспечения Цифровой клиентский опыт — исследования и дизайн UX/UI SaaS и разработка программного обеспечения ИТ-консалтинг и увеличение штата Модернизация программного обеспечения и миграция в облако Данные и аналитика Облачная инженерия Мы обслуживаем следующие отрасли: SaaS и цифровые платформы Образование и публикации Фармацевтика, здравоохранение и науки о жизни Финтех, банковское дело, финансовые услуги Страхование Розничная торговля, электронная коммерция Цепочка поставок Речь и перевод Строительство и недвижимость Автомобильная промышленность Медиа и развлечения Путешествия и гостеприимство Почему стоит выбрать Unified Infotech? Мы — отмеченная многочисленными наградами глобальная компания цифровой трансформации. Мы помогаем предприятиям значительно улучшить бизнес-результаты с помощью индивидуального цифрового опыта, разработки программного обеспечения, облачной инженерии, аналитики данных, ИТ-консалтинга и консультационных услуг. Аккредитация Deloitte Technology Fast 500 BBB и рейтинг A+ (2019) 2019 Рейтинг на GoodFirms 50 Рейтинг Clutch Certified: «Отличное место для работы», "почасовая_ставка":«$50 - $99/час», "нет_сотрудников":"50 - 249", "год_основания":"2010", "услуги":[ «Веб-разработка», "Разработка программного обеспечения", «Веб-дизайн (UI/UX)», «Разработка мобильных приложений», «Развитие электронной коммерции» ] }, { "название":"Сигли", "описание":«Sigli — динамичная компания по разработке программного обеспечения, специализирующаяся на разработке цифровых продуктов и цифровой трансформации. Мы преуспеваем в воплощении инновационных идей в реальность, предоставляя комплексные решения, охватывающие весь цикл разработки, от концепции до развертывания. Наше пристальное внимание к предоставлению высококачественных, масштабируемых и перспективных цифровых продуктов позволяет нам эффективно преодолевать сложности цифровой трансформации. В дополнение к нашим основным услугам по разработке мы уделяем особое внимание решениям в области искусственного интеллекта и данных, помогая компаниям использовать передовую аналитику и интеллектуальные системы для стимулирования инноваций и эффективности. Модернизируя операции и улучшая качество обслуживания клиентов, мы гарантируем, что наши клиенты останутся конкурентоспособными в постоянно меняющемся цифровом ландшафте. Опыт нашей команды в сочетании с приверженностью использованию новейших технологий и передовых практик позиционирует Sigli как надежного партнера для компаний, стремящихся к процветанию в цифровую эпоху. Мы гордимся тем, что сертифицированы по стандарту ISO/IEC 27001, гарантируя, что данные и операции наших клиентов защищены и соответствуют требованиям. В Sigli мы считаем, что для успешного проекта требуется гармоничное сочетание передовых технологий, профессионального и адаптивного Команда, взаимное уважение и тщательное планирование. Наш клиентоориентированный подход подкреплен прозрачностью, ответственностью и неустанной приверженностью обслуживанию. Мы общаемся открыто, берем на себя ответственность за свою работу и всегда ставим удовлетворение клиента в приоритет»., "почасовая_ставка":«$50 - $99/час», "нет_сотрудников":"50 - 249", "год_основания":"2015", "услуги":[ "Разработка программного обеспечения", «Веб-разработка», «Большие данные и бизнес-аналитика», "Искусственный интеллект", «Разработка мобильных приложений», «Тестирование услуг», «DevOps» ] } ]
Заключение
Анализ данных GoodFirms может дать вам представление о компаниях, услугах и тенденциях в отрасли. Используйте Crawlbase Crawling API и Python для сбора и организации списков поиска и профилей компаний. Эти данные могут быть использованы для исследования рынка, анализа конкурентов или решений на основе данных.
Но всегда следуйте этичным практикам веб-скрейпинга, читая условия обслуживания GoodFirm и используя данные с умом. С правильным подходом и инструментами вы можете превратить GoodFirms в сокровищницу бизнес-инсайтов.
Вот еще несколько руководств, которые могут вас заинтересовать:
Если у вас есть вопросы или вы хотите оставить отзыв, наш команда поддержки может помочь вам с веб-скрапингом. Счастливого скрапинга!
Часто задаваемые вопросы (FAQ):
В. Какие этические соображения следует учитывать при парсинге GoodFirms?
Скрапинг — мощный инструмент, но всегда следуйте условиям обслуживания и этическим принципам GoodFirm. Не делайте чрезмерных запросов, которые могут перегрузить их серверы, уважайте их файл robots.txt и используйте данные, не нарушая права интеллектуальной собственности.
В. Как мне справиться с потенциальными проблемами, такими как капчи или блокировки, при парсинге GoodFirms?
GoodFirms — статический сайт, поэтому капчи или блоки встречаются редко. Но для обеспечения плавного парсинга вы можете использовать Crawlbase Crawling API для таких функций, как ротация IP-адресов и повторные запросы, которые могут обойти ограничение скорости и поддерживать постоянный доступ.
В. Какую информацию могут получить компании, изучая GoodFirms?
Профили компании, предлагаемые услуги, отзывы клиентов, почасовые ставки, количество сотрудников, годы основания. Используйте эти данные для сравнения с конкурентами, отраслевыми тенденциями и создания целевого охвата.
Хассан Рехан
Хассан Рехан — инженер-программист в Crawlbase с более чем 5-летним опытом создания масштабируемых веб-приложений, специализируясь на Java, Python и JavaScript. Он имеет большой опыт в веб-скрапинге и разработал несколько первоклассных расширений Chrome. Как ведущий технический писатель в Crawlbase, он создает технический контент и проводит вебинары. Ранее он сотрудничал с ведущими компаниями, включая Mentor Graphics (Siemens), Etisalat UAE и Systems Limited.