Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Сбор данных о цитатах и авторах

Что было сделано ?

В рамках задачи был реализован скрипт на Python, который собирает данные с сайта "Quotes to Scrape". Система была разработана для извлечения цитат, авторов цитат, а также дополнительной информации об авторах (дата рождения, место рождения и описание). Все данные были собраны и сохранены в формате JSON, который был выбран для удобства дальнейшего анализа и использования.

Откуда были получены данные ?

Данные были собраны с сайта "https://quotes.toscrape.com/". Сайт предоставляет публично доступную информацию о цитатах и авторах, которые можно извлечь с помощью скриптов. В ходе сбора данных с каждой страницы сайта были извлечены следующие элементы:

  1. Цитаты — Текст цитаты.
  2. Авторы — Имя автора цитаты.
  3. Информация о авторах — Для каждого автора извлекалась информация, включая дату рождения, место рождения и краткое описание.

Как осуществлялся сбор ?

Сбор данных был организован с использованием Python и популярных библиотек для веб-скрейпинга:

  1. Requests: Библиотека для выполнения HTTP-запросов к сайту.
  2. BeautifulSoup: Использовалась для парсинга HTML-страниц и извлечения нужных данных из полученного HTML-кода.

Алгоритм работы:

  • Отправляется запрос на главную страницу сайта, извлекаются цитаты и ссылки на страницы авторов.
  • Для каждого автора отправляется запрос на его страницу для получения информации (дата рождения, место рождения, описание).
  • Данные о цитатах и авторах сохраняются в список, который в конце записывается в файл в формате JSON.

Анализ структуры данных

  1. Структура страницы

    • Страница сайта состоит из различных элементов, каждый из которых выполняет определенную функцию для представления цитат и информации об их авторах. Например, цитаты представлены в виде <span> с классом text, в то время как информация об авторе (имя, описание и дата рождения) размещена в разных элементах на странице.
    • На странице цитат, каждый автор указан с помощью тега <small class="author" itemprop="author">, что позволяет выделить имя автора в HTML. Ссылка на подробную информацию об авторе доступна через тег <a href="/author/имя-автора">(about)</a>, что позволяет перейти на страницу автора.

    Страница с подробной информацией о каждом авторе содержит разделы:

    • Имя автора: <h3 class="author-title">.
    • Дата рождения: <span class="author-born-date">.
    • Место рождения: <span class="author-born-location">.
    • Описание автора: <div class="author-description">. Эти данные используются для сбора подробной информации о каждом авторе цитат.
  2. Типы данных:

    • Цитаты: строки текста, которые являются основным контентом на странице.
    • Информация о авторе:
      • Имя автора: строка, которая используется как идентификатор автора.
      • Дата рождения: строка, содержащая информацию о дате (например, "March 14, 1879").
      • Место рождения: строка, содержащая название города или страны (например, "in Ulm, Germany").
      • Описание: длинный текст, описывающий биографию автора, его достижения и философию.

Почему был выбран тот или иной метод/инструмент ?

  1. Python — выбран в качестве основного языка программирования из-за своей популярности в области анализа данных и обработки веб-страниц. Он предоставляет удобные библиотеки для парсинга и обработки данных.

  2. Requests — эта библиотека была выбрана для выполнения HTTP-запросов из-за своей простоты в использовании и широкого распространения. Она позволяет легко отправлять запросы и получать ответы от серверов.

  3. BeautifulSoup — выбрана для парсинга HTML-страниц, так как она предоставляет мощные и гибкие средства для извлечения данных из веб-страниц. Она является одной из самых популярных библиотек для скрейпинга благодаря своей простоте и эффективности в парсинге.

  4. JSON — для сохранения данных был выбран формат JSON, так как он является универсальным и широко используемым форматом для обмена данными. Он удобен для хранения структурированных данных и дальнейшей обработки в других программах.

  5. Time.sleep() — была добавлена пауза между запросами, чтобы снизить вероятность блокировки IP-адреса и соблюдать этические принципы при веб-скрейпинге.

Структура проекта

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/athzero/project_scraping.git
  2. Установите необходимые зависимости:

    pip install -r requirements.txt
  3. Запустите скрипт для сбора данных:

    python scraping.py

Лицензия

Это тестовое задание так пока без лицензией.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages