CoderCastrov logo
CoderCastrov
Веб-сайт

Парсинг таблицы из Википедии с помощью R

Парсинг таблицы из Википедии с помощью R
просмотров
2 мин чтение
#Веб-сайт
Table Of Content

Введение в парсинг веб-страниц:

Мы знаем, что Интернет содержит всю информацию в виде веб-страниц, написанных на языке 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.