Парсинг таблицы из Википедии с помощью R
Введение в парсинг веб-страниц:
Мы знаем, что Интернет содержит всю информацию в виде веб-страниц, написанных на языке HTML. Интернет содержит множество данных, которые могут быть полезными для различных целей. Например, я хочу узнать подробности о iPhone 13 Pro с разных уникальных веб-страниц, связанных с ценой телефона, качеством дисплея и общим обзором мобильного телефона. Я сохраню эту собранную информацию в различных форматах файлов. Используя эти данные, я могу создавать графики, диаграммы или, возможно, предсказывать будущую цену iPhone 13 Pro Max. Таким образом, мы можем делать все, используя данные, и этот процесс называется парсингом.
Получите весь код и csv-файл с моего профиля GitHub.
Шаги:
Это весь код, не беспокойтесь, если вы его не понимаете, я объясню каждую строку далее.
# Шаг 1
install.packages("rvest")
library(rvest)# Шаг 2
rwiki<-'https://en.wikipedia.org/wiki/List_of_circulating_currencies'# Шаг 3
countries<-rwiki %>%read_html(rwiki) %>%html_element('table')%>%html_table()# Шаг 4
write.csv(countries,"C:/Users/HP/Desktop/scrap/contrycourency//countrycourency.csv")
Шаг 1: rvest - это библиотека R, которую большинство использует для парсинга веб-страниц. Чтобы установить этот пакет, мы используем install.packages("rvest"), а для его запуска необходимо активировать пакет, запустив этот код library(rvest). Теперь пакет активирован, и мы можем использовать его элементы.
Шаг 2: Я взял переменную rwiki, чтобы сохранить ссылку на веб-страницу, и присвоил ссылку переменной, используя оператор присваивания в строковом формате.
Шаг 3: Для шага 3 я напишу весь код в одной строке, чтобы было легче объяснить.
# Шаг 3
countries<-rwiki %>% read_html(rwiki) %>% html_element('table')%>% html_table()
Итак, что я сделал на этом шаге:
- чтобы прочитать и импортировать полный HTML-код страницы Википедии, я использовал read_html(rwiki). Здесь rwiki - это переменная, в которой я сохраняю ссылку на страницу.
- На этой веб-странице есть две таблицы, но нам нужна только первая таблица. Поэтому нам просто нужно найти тег таблицы
<table>
, по умолчанию он выберет первую таблицу веб-страницы. Я использовал html_element('table') для поиска тега таблицы в полном HTML-коде веб-страницы. - Если вы хотите получить обе таблицы со страницы, вы можете использовать html_elements('table') или для выбора второй таблицы укажите класс второй таблицы, например html_element('.class') - для вывода таблицы я использовал html_table().
- Я сохраняю каждую строку шага 3 в переменной с именем countries.
Шаг 4: В заключение, нам нужно сохранить эту таблицу в файл, я сохранил ее в формате csv (значения, разделенные запятыми), для этого используйте этот код.
write.csv(countries,"путь к файлу//имя_файла.csv")
Вы также можете сохранить в формате Excel, но для этого вам нужно установить writexl и следовать вышеуказанной строке для сохранения.
install.packages("writexl")
library(writexl)
write_xlsx(countries,"путь к файлу//имя_файла.csv")
Чтобы узнать больше о пакете rvest, перейдите на официальную веб-страницу. И вы получите весь код на моей странице GitHub. Подпишитесь на меня в Twitter.