Пошаговый подход к очистке любого XML-файла с помощью Python

Данные - это новое масло, но оно определенно недешево. Данные поступают со всех сторон; Интернет, приложения, социальные сети и т. д., и необходимо, чтобы специалисты по обработке данных могли добывать некоторые из них. В следующем блоге мы узнаем, как быстро добывать / очищать данные с веб-сайта (для развлечения) с помощью библиотеки Python «BeautifulSoup».

План действий

Оглавление

  1. Представьте пример использования
  2. Что такое BeautifulSoup?
  3. BS4 в действии - понимание и извлечение данных
  4. Последние комментарии

Представьте пример использования

Любой, кто работал в сфере обслуживания клиентов или в сфере гостеприимства, понимает важность удовлетворения потребностей клиентов. NPS или Net Promoter Score считается эталоном качества обслуживания клиентов. Хотя NPS - это специально разработанный опрос, существуют и другие методы, позволяющие понять настроения клиентов. Один из них - Отзывы клиентов и рейтинг в Appstore (конечно, только если ваше приложение там доступно).

Итак, вот что мы будем делать -

→ Возьмите случайное приложение (например: Facebook)

→ Перейти к обзорам iTune

→ Извлеките рейтинг, комментарии, дату и т. Д., Предоставленные другим пользователем.

→ Экспортируйте их в чистом формате «csv / xlsx».

Что такое BeautifulSoup?

Beautiful Soup (также известный как BS4) - это пакет Python для анализа документов HTML и XML. Он создает дерево синтаксического анализа для проанализированных страниц, которое можно использовать для извлечения данных из HTML, что полезно для парсинга веб-страниц. Он доступен для Python 2.7 и Python 3.

BS4 в действии - понимание и извлечение данных

iTunes упростил получение обзора приложения в Apple App Store. Идентификатор приложения Facebook - 28488215, и нам просто нужно добавить его в следующий URL

https://itunes.apple.com/us/rss/customerreviews/page=1/id=284882215/sortBy=mostrecent/xml

Если щелкнуть указанный выше URL-адрес, откроется страница, которая выглядит следующим образом:

XML-документы формируются в виде деревьев элементов. XML-дерево начинается с корневого элемента и разветвляется от корня к дочерним элементам. Термины родительский, дочерний и родственный используются для описания отношений между элементами.

На изображении выше мы видим, что <feed> - это родитель, который является множеством дочерних элементов. Один из детей - <entry> , у которого много детей. В некотором смысле - <feed> - дедушка, <entry> - сын, а остальные - внуки.

Что нам нужно извлечь?

А пока предположим, что мы хотим извлечь из каждого обзора следующее:

  1. Дата рассмотрения
  2. Название обзора
  3. Содержание
  4. Рейтинг
  5. Имя рецензента

И мы хотим сделать это на 10 страницах.

Код Python

Код довольно простой

→ Сначала используйте request для импорта данных из URL

→ Преобразуйте его в объект BS4, используя BeautifulSoup

→ Дополнительно: можно найти весь текст в данных с помощью soup.findall()

→ Найдите дочерний элемент / тег entry и сохраните его как объект. (Это первый обзор, который содержит всю информацию, относящуюся к обзору)

→ Найдите его дочерние элементы updated title content im:rating name, чтобы извлечь всю необходимую информацию и сохранить ее в списке.

→ Найдите брата дочернего элемента / тега entry, используя find_next_sibling() (это приведет вас к следующему обзору)

→ Продолжайте цикл до тех пор, пока не перестанут быть найдены отзывы. Продолжайте добавлять данные в фрейм данных.

→ Дополнительно: в приведенном выше коде я добавил еще один цикл для извлечения всей указанной выше информации с первых 10 страниц обзора.

Это все. Довольно аккуратно, правда!

Результат

У нас должен получиться фрейм данных, который выглядит примерно так:

Вуаля - вы успешно извлекли информацию из iTunes. Теперь вы можете разработать свои красивые модели НЛП на их основе и узнать, что ваши клиенты думают о вас.

Чтобы просмотреть другие мои блоги по науке о данных / машинному обучению, посетите:



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