CoderCastrov logo
CoderCastrov
Парсер

Парсинг данных без написания кода

Парсинг данных без написания кода
просмотров
5 мин чтение
#Парсер

А что, если я скажу вам, что можно собирать данные без написания ни одной строки кода?

Да, вы не ослышались: существуют некоторые типы данных, которые можно собирать без помощи программирования. И я покажу вам, как это сделать! Для этого урока вам понадобятся следующие материалы:

  • Базовое знание HTML (умение распознавать тег <table>);
  • Доступ в Интернет;
  • Ваш любимый браузер;
  • Сайт для сбора информации.

Почему нужно парсить данные

Существует множество причин, по которым мы хотим собирать данные. Первое, что приходит на ум при упоминании парсинга, - это то, что часто данные поступают в ограниченном формате для анализа. Это заставляет команду извлекать эти данные из контекста, в котором они были предоставлены, и приводить их в более удобный формат. В этом уроке мы именно это и сделаем: извлечем данные из таблицы в HTML и поместим их в таблицу Excel.

Во время моей работы в Serenata, другой фактор, который стал присутствовать в моей повседневной жизни, - это необходимость создания резервных копий данных. Особенно когда речь идет о государственных данных, постоянное беспокойство - это доступность и доступ к этим данным. Существует множество механизмов и правительственных политик, которые влияют на доступность этих данных. И это происходит во всем мире. Например, в 2016 году ученые в Соединенных Штатах провели совместную работу по созданию резервных копий нескольких наборов данных перед тем, как Трамп стал президентом, из-за опасений, что эти данные "исчезнут".

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

Итак, давайте начнем парсить!


Поехали! Институт экономических исследований прикладной экономики (IPEA) предоставляет множество интересной информации. Одной из инициатив института является Atlas насилия, который отображает такие вещи, как уровень убийств на 100 тысяч человек.

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

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

Очень круто! Однако этот способ предоставления данных в виде изображений создает две проблемы:

Вот где люди могут обратиться к техникам парсинга, чтобы собрать эти данные для своего анализа. И вот где возникает первая проблема: Ай, но я не умею программировать! Как я смогу спарсить нужные мне данные?

Итак, давайте начнем, краткий курс того, что вам понадобится, чтобы спарсить данные без программирования.

HTMLДля начала вам нужно научиться находить HTML-тег, называемый <table>. HTML - это язык разметки, и практически каждый сайт в Интернете - это набор HTML. Он работает с тегами, которые помечают текст, указывая, что это за элемент. Они легко определяются тем, что находятся между знаками "меньше" (<) и "больше" (>), например, если вы хотите создать таблицу, вы используете тег <table>.

ИнспектированиеЧтобы увидеть HTML-код страницы, на которой вы находитесь, щелкните правой кнопкой мыши в любой части страницы:

Затем выберите опцию "Инспектировать". При выборе этой опции откроется боковая панель с инструментами разработчика, которые позволят вам исследовать HTML-код страницы:

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

И теперь, когда у нас есть доступ к HTML, просто найдите тег <table>. Поскольку поиск тегов в HTML может быть довольно хаотичным, я использую следующий метод:

Я нажимаю эту кнопку (обведенную красным на рисунке выше), которая является селектором элемента для инспектирования, когда она становится синей, я навожу ее на таблицу, и тогда HTML в инспекторе "перепрыгивает" точно туда, где находится код, относящийся к таблице - элемент, на который я навожу мышь:

Розовая стрелка показывает, где была моя мышь. В синем квадрате слева HTML, который показывает код, относящийся к этой ячейке таблицы, над которой находится моя мышь

Это упрощает процесс нахождения таблицы в HTML:

Тег `<table>` обведен красным

Затем мы щелкаем правой кнопкой мыши на теге <table>, чтобы открыть меню, и используем опцию "Копировать элемент":

Меню с опцией 'Копировать элемент'

Поздравляю! Вы только что скопировали HTML 🎉.

Я хотел получить таблицу, показывающую уровень убийств на 100 тысяч человек для всех муниципалитетов с 1996 по 2016 год, но содержимое этой таблицы слишком велико, чтобы просто скопировать и вставить его непосредственно в конвертер, поэтому я сохранил файл с этой таблицей:

Теперь просто следуйте сайту, на шаге 1 выберите вкладку выбора файлов и загрузите наш файл tabela.html:

Я пропустил шаг 2, так как хотел оставить настройки по умолчанию для результата, который здесь ниже, но стоит отметить, что поскольку в Бразилии разделителем десятичных разрядов является запятая, стоит рассмотреть замену разделителя ("Output field separator" в шаге 2) с запятой (,) на точку с запятой (;), чтобы избежать двойных кавычек при открытии наших данных в Excel, например:

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

Я разместил результатирующую таблицу здесь, если вы хотите проверить.


Если вы хотите узнать больше о парсинге, рекомендую послушать эпизод 009 Pizza de Dados:


Удачи, на сегодня все 😉