CoderCastrov logo
CoderCastrov
Парсер

Holidify: Лучшие туристические направления для каждого штата в Индии - Проект по веб-парсингу

Holidify: Лучшие туристические направления для каждого штата в Индии - Проект по веб-парсингу
просмотров
3 мин чтение
#Парсер
Table Of Content

Holidify.com - это веб-сайт, который предоставляет информацию о лучших туристических направлениях в каждой стране. Кроме того, он также позволяет получить дополнительную информацию о главных туристических достопримечательностях в каждом туристическом направлении и различные пакеты, которые он предлагает путешественникам. https://www.holidify.com/

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

Таким образом, мы собираемся спарсить следующие атрибуты для каждого туристического направления.

##Парсинг Топ-туристических направлений и их атрибутов в каждом штате Индии с веб-сайта Holidify

Цель:

Сначала мы соберем все штаты с википедии, а затем для каждого штата мы получим все топ-туристические направления и другие атрибуты динамически с помощью Python API, таких как Requests и Beautifulsoup

Описание

Название направления Штат направления Ранг в штате Количество туристических достопримечательностей в этом месте Информация о пакете, который предлагает Holidify для этого направления Более подробная информация о направлениях

  1. Создание вспомогательных функций для получения объединенных списков

  2. Сохранение извлеченных данных в словаре.

  3. Сбор всех данных в DataFrame с помощью Pandas и сохранение данных в CSV-файл.

По итогам проекта мы создадим DataFrame в следующем формате:

Шаги, выполненные в проекте:

Шаги, выполненные для получения списка штатов

Шаги, выполненные для получения атрибутов туристических направлений в каждом штате

Эксперименты с библиотекой Python - BeautifulSoup

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

2. Функция для получения объекта документа Beautiful Soup

3. Функция для получения списка государств

4. Функция для получения количества мест (количество популярных туристических мест) в каждом государстве

5. Функция для получения названия каждого места

6. Функция для получения ранга каждого места внутри государства, количества достопримечательностей, если они доступны на сайте, и названия государства

7. Функция для получения лучшего времени для посещения каждого места

8. Функция для получения ссылок на пакетные предложения

9. Функция для получения ссылок на дополнительные детали

10. Объединение списков

11. Функция для получения атрибутов для каждого места по государству

12. Создание функции для возврата словаря и DataFrame

def return_dict_and_dataframe():
    # код для создания словаря
    dictionary = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

    # код для создания DataFrame
    import pandas as pd
    data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]}
    df = pd.DataFrame(data)

    return dictionary, df

13. Последовательный вызов функций для возврата DataFrame

def function1():
    # код для создания словаря
    dictionary = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
    return dictionary

def function2(dictionary):
    # код для создания DataFrame
    import pandas as pd
    data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]}
    df = pd.DataFrame(data)
    return df

dictionary = function1()
df = function2(dictionary)

14. Запись в CSV

df.to_csv('data.csv', index=False)

15. Чтение из CSV в DataFrame

import pandas as pd
df = pd.read_csv('data.csv')

Summary

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

Future Work

В будущем можно расширить функциональность функций, добавить обработку исключений и улучшить обработку данных.

References

[1] Документация Pandas: https://pandas.pydata.org/docs/