После анализа пару вещей заметил:
- Наибольшее количество отзывов расположено во Львове, что является следствием наиболее активного места, где востребованы кафе ( на основе размера выборки и данных, собранных с Google Maps ).
- Mariupol имеет наименьшую посещаемость кофейных магазинов ( на основе размера выборки и данных, собранных из Google Maps ).
Содержание: введение, данные, цели проекта, используемые инструменты, приготовление данных, код, визуализация, ссылки, выводы, OUTRO и следующий шаг.
вступление
Персональный портфель проекта для анализа кафе из 10 городов Украины.
Данные
- Каждый город содержит только 20 точек данных для анализа.
- Размер образца не рассчитан, чтобы лучше представляет общее население Отказ
- Данные были соскабливаются от Google Maps локальные результаты.
Цели проекта
- Добыча данных и подготовка.
- Очистка данных.
- Анализ данных.
- Визуализация данных.
- Жизненный цикл анализа данных.
Используемые инструменты
- Google Maps Locals Результаты API от серпапи.
- Питон
- Google Pastets
- Таблетка
Приготовление данных
Было несколько пустых рядов. Чтобы избежать неопределенных результатов, Удалить пустые строки Add-one Add-One Poogs был использован для выполнения работы.
Код
Следующий блок царапин кода: название места, тип, рейтинг, цену, доставку, пообередование и варианты выносов.
from serpapi import GoogleSearch import csv params = { "api_key": "YOUR_API_KEY", "engine": "google_maps", "type": "search", "google_domain": "google.com", "q": "кофе мариуполь", "ll": "@47.0919234,37.5093148,12z" } search = GoogleSearch(params) results = search.get_dict() with open('mariupol_coffee_data.csv', mode='w', encoding='utf8') as csv_file: fieldnames = ['Place name', 'Place type', 'Rating', 'Reviews', 'Price', 'Delivery option', 'Dine in option', 'Takeout option'] writer = csv.DictWriter(csv_file, fieldnames=fieldnames) writer.writeheader() coffee_data = [] for result in results['local_results']: place_name = result['title'] place_type = result['type'] try: rating = result['rating'] except: rating = None try: reviews = result['reviews'] except: reviews = None try: price = result['price'] except: price = None try: delivery_option = result['service_options']['delivery'] except: delivery_option = None try: dine_in_option = result['service_options']['dine_in'] except: dine_in_option = None try: takeout_option = result['service_options']['takeout'] except: takeout_option = None coffee_data.append({ 'Place name': place_name, 'Place type': place_type, 'Rating': rating, 'Reviews': reviews, 'Price': price, 'Delivery option': delivery_option, 'Dine in option': dine_in_option, 'Takeout option': takeout_option, }) for data in coffee_data: writer.writerow(data) print('Finished')
Результаты Google Maps Locals API от Serpapi – платный API с бесплатной пробной версией 5000 поисков.
Если вы используете Python, вы можете сделать то же самое с Селен
Автоматизация браузера.
Основные различия между написанием вашего собственного кода и использованием API заключается в том, что вам не нужно Tinker, чтобы найти определенные элементы страницы для Scrape, она уже сделана для конечного пользователя с JSON
Вывод или дуэль с Google, чтобы избежать капчи или поиска прокси, если они необходимы или другие вещи, которые могут столкнуться.
Весь процесс (20 мест из каждого города (10 в общей сложности)) занял ~ 30 минут, чтобы соскрести все необходимые данные.
Визуализация
Ссылки
- Визуализация Tableau Отказ
- Google Maps Местные результаты API от серпапи.
- CAGGLE DataSet Отказ
- Код также доступен как Github Gist Отказ
Выводы
- Наибольшее количество отзывов расположено во Львове.
- Мариуполь имеет наименьшее место посещаемости.
Outro и следующий шаг
Спасибо за чтение этого далеко. Следующие шаги могут найти:
- Соотношение между часами рабочей нагрузки место и количество отзывов в этом месте прибыль.
- Корреляция между доступной доставкой, пообередостью, варианты выносов и количество обзоров или рейтинга, полученных из этих доступных опций.
- Причина, почему некоторые места имеют самые низкие/самые высокие рейтинги. Проанализируйте те места, соскабливая народы комментариев в сочетании с NLP для определения определенных структур слов, которые повторяются в одном или иных случаях.
Твой, Д.
Оригинал: “https://dev.to/dimitryzub/ukrainian-coffee-shops-portfolio-analysis-project-532j”