Пошаговый подход к очистке любого XML-файла с помощью Python
Данные - это новое масло, но оно определенно недешево. Данные поступают со всех сторон; Интернет, приложения, социальные сети и т. д., и необходимо, чтобы специалисты по обработке данных могли добывать некоторые из них. В следующем блоге мы узнаем, как быстро добывать / очищать данные с веб-сайта (для развлечения) с помощью библиотеки Python «BeautifulSoup».
План действий
Оглавление
- Представьте пример использования
- Что такое BeautifulSoup?
- BS4 в действии - понимание и извлечение данных
- Последние комментарии
Представьте пример использования
Любой, кто работал в сфере обслуживания клиентов или в сфере гостеприимства, понимает важность удовлетворения потребностей клиентов. 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>
- сын, а остальные - внуки.
Что нам нужно извлечь?
А пока предположим, что мы хотим извлечь из каждого обзора следующее:
- Дата рассмотрения
- Название обзора
- Содержание
- Рейтинг
- Имя рецензента
И мы хотим сделать это на 10 страницах.
Код Python
Код довольно простой
→ Сначала используйте request
для импорта данных из URL
→ Преобразуйте его в объект BS4, используя BeautifulSoup
→ Дополнительно: можно найти весь текст в данных с помощью soup.findall()
→ Найдите дочерний элемент / тег entry
и сохраните его как объект. (Это первый обзор, который содержит всю информацию, относящуюся к обзору)
→ Найдите его дочерние элементы updated
title
content
im:rating
name
, чтобы извлечь всю необходимую информацию и сохранить ее в списке.
→ Найдите брата дочернего элемента / тега entry
, используя find_next_sibling()
(это приведет вас к следующему обзору)
→ Продолжайте цикл до тех пор, пока не перестанут быть найдены отзывы. Продолжайте добавлять данные в фрейм данных.
→ Дополнительно: в приведенном выше коде я добавил еще один цикл для извлечения всей указанной выше информации с первых 10 страниц обзора.
Это все. Довольно аккуратно, правда!
Результат
У нас должен получиться фрейм данных, который выглядит примерно так:
Вуаля - вы успешно извлекли информацию из iTunes. Теперь вы можете разработать свои красивые модели НЛП на их основе и узнать, что ваши клиенты думают о вас.
Чтобы просмотреть другие мои блоги по науке о данных / машинному обучению, посетите:
Конец на данный момент. Есть какие-нибудь идеи по улучшению этого или хотите, чтобы я испробовал какие-нибудь новые идеи? Пожалуйста, оставляйте свои предложения в комментариях. Прощай.