CoderCastrov logo
CoderCastrov
Парсер веб-сайтов

Как парсить веб-страницы с помощью RStudio

Как парсить веб-страницы с помощью RStudio
просмотров
3 мин чтение
#Парсер веб-сайтов
import.io

Вы знали о парсинге?

Парсинг веб-страниц (также называемый скрининг, извлечение данных из Интернета, сбор информации и т. д.) - это техника, которая позволяет извлекать большие объемы данных с веб-сайтов и сохранять их на локальном компьютере в виде файла или в базе данных в формате таблицы (электронной таблицы).

Данные, отображаемые на большинстве веб-сайтов, можно просматривать только с помощью веб-браузера. Они не предлагают функциональности для сохранения копии этих данных для личного использования. Единственный вариант - вручную копировать и вставлять данные, что является очень трудоемкой задачей, которая может занять много часов или иногда дней. Парсинг веб-страниц - это техника автоматизации этого процесса, поэтому вместо ручного копирования данных с веб-сайтов программное обеспечение для парсинга веб-страниц выполнит ту же задачу за долю времени. (http://www.webharvy.com/)

После того, как мы узнали, что такое парсинг веб-страниц, мы начнем парсить веб-страницы с помощью приложения RStudio. В этот раз мы будем парсить веб-сайт TripAdvisor. TripAdvisor, Inc. - это американский веб-сайт для путешествий и ресторанов, на котором показываются отзывы о гостиницах и ресторанах, размещение и другой связанный с путешествиями контент. Он также включает интерактивные форумы о путешествиях. TripAdvisor - один из первых платформ, основанных на контенте, созданном пользователями.

Давайте попробуем,

вы можете использовать любой веб-сайт или использовать тот же веб-сайт, что и я https://www.tripadvisor.com/Airline_Review-d8729079-Reviews-Cheap-Flights-Garuda-Indonesia#REVIEWS здесь мы используем парсинг веб-страницы для получения отзывов о авиакомпании Garuda Indonesia. Кстати, Garuda Indonesia - это национальная авиакомпания Индонезии.

Сначала вы можете попробовать это

library(xml2)library(rvest)url<-read_html(“https://www.tripadvisor.com/Airline_Review-d8729079-Reviews-Cheap-Flights-Garuda-Indonesia#REVIEWS")

зачем мы используем функции xml2 и rvest? xml2 поставляется с несколькими образцами файлов в своем каталоге 'inst/extdata'. Эта функция облегчает их доступ. rvest - новый пакет, который упрощает парсинг (или сбор) данных с веб-страниц HTML, вдохновленный библиотеками, такими как beautiful soup. Он разработан для работы с magrittr, чтобы вы могли выражать сложные операции в виде элегантных конвейеров, состоящих из простых и понятных частей.

npages<-url%>%html_nodes(“ .pageNum”)%>% html_attr(name=”data-page-number”)%>% tail(.,1)%>%as.numeric() npages

с помощью приведенного выше кода будет отображаться, сколько веб-страниц являются отдельными.

a<-0:(npages-1)ab<-10bres<-numeric(length = length(a))resfor (i in seq_along(a)) {res[i]<-a[i]*b }
tableout<-data.frame()
for (i in res) {cat(“.”)

Этот текст обычно используется для парсинга веб-страниц, где веб-страницы имеют несколько страниц, в этом случае парсинг будет проходить по url для получения данных.

url<-paste(“https://www.tripadvisor.com/Airline_Review-d8729079-Reviews-Cheap-Flights-or",i,"Garuda-Indonesia#REVIEWS",sep = “”)
reviews<-url%>`% html()%>% html_nodes(“#REVIEWS .innerBubble”)
id`<-reviews%>`% html_node(“.quote a”) >  html_attr(“id”)
quote`<-reviews%>`% html_node(“.quote span”) >  html_text()
rating`<-reviews%>`% html_node(“.rating .ui_bubble_rating”) >  html_attrs()gsub(“ui_bubble_rating bubble_”,””, .) > as.integer() / 10
date <-reviews%> html_node(“.innerBubble, .ratingDate”) >  html_text()
review <-reviews%> html_node(“.entry .partial_entry”) >% html_text()
flights -reviews%> html_node(“.categoryLabel”) >  html_text()
reviewnospace`<-gsub(“\n”,””,review)temp.tableout<-data.frame(id,quote,rating,date,reviewnospace,flights)tableout<-rbind(tableout,temp.tableout)}

Таблица результатов парсинга`

в этом случае парсинг веб-страницы использует селекторы объектов для извлечения данных из инспектора элементов в виде: #REVIEWS .innerBubble; .quote a; .quote span; .rating .ui_bubble_rating; .innerBubble, .ratingDate; .entry .partial_entry; .categoryLabel; из этого я получу id, цитату, рейтинг, дату, отзыв, рейсы из результатов отзывов пассажиров авиакомпании, это можно увидеть на картинке.

View(tableout)write.csv(tableout,”E://BIML//scrap.csv”)save.image()

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

Таблица результатов парсинга

Достаточно получить здесь информацию о парсинге веб-страницы. Ждите моей статьи с другими обсуждениями. Удачи.