Веб-скрапинг вложенных ссылок с помощью R

Я хотел бы удалить из Интернета ссылки, вложенные в имя свойства, этот скрипт работает, однако не извлекает только URL-адреса NAs. Не могли бы вы мне помочь или то, что мне не хватает в сценарии, вырезано.

Спасибо

# Test
library(rvest)
library(dplyr)

link <- "https://www.sreality.cz/hledani/prodej/byty/brno?_escaped_fragment_="
page <- read_html(link)

price <- page %>% 
  html_elements(".norm-price.ng-binding") %>% 
  html_text()

name <- page %>% 
  html_elements(".name.ng-binding") %>% 
  html_text()

location <- page %>% 
  html_elements(".locality.ng-binding") %>% 
  html_text()

href <- page %>% 
  html_nodes(".name.ng-binding") %>% 
  html_attr("href") %>% paste("https://www.sreality.cz", ., sep="")

flat <- data.frame(price, name, location, href, stringsAsFactors = FALSE)

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ваш селектор CSS выбрал встроенный html якоря вместо якоря. Это должно работать:

 page %>% 
     html_nodes("a.title") %>%
     html_attr("ng-href") %>% 
     paste0("https://www.sreality.cz", .)

paste0(...) является сокращением от paste(..., sep = '')

Вау, это работает, спасибо, как вы получили «a.title» и «ng-href», мне нужно искать через проверку веб-сайта?

Jaroslav Kotrba 10.04.2022 19:18

как вы уже догадались :-) Я использовал средство выбора элементов (Ctrl-Shift-C в Chrome), чтобы выбрать ссылку и отобразить ее html-окружение в инспекторе документов. Оттуда я выбрал тип элемента («a» для привязки = ссылка), класс («заголовок») и атрибут («ng-href») в качестве быстрого и грязного селектора. Если бы это было слишком общим, я бы сделал селектор более конкретным, как предложил @NadPat, или отфильтровал результаты, например. для «detail/prodej» в URL-адресе.

I_O 10.04.2022 19:33

Другой способ использования пути JS

page %>% 
  html_nodes('#page-layout > div.content-cover > div.content-inner > div.transcluded-content.ng-scope > div > div > div.content > div > div:nth-child(4) > div > div:nth-child(n)') %>% 
  html_nodes('a') %>% html_attr('href') %>% str_subset('detail') %>% unique() %>% paste("https://www.sreality.cz", ., sep="")

[1] "https://www.sreality.cz/detail/prodej/byt/4+1/brno-zabrdovice-tkalcovska/1857071452"          
 [2] "https://www.sreality.cz/detail/prodej/byt/3+kk/brno--/1336764508"                             
 [3] "https://www.sreality.cz/detail/prodej/byt/2+kk/brno-stary-liskovec-u-posty/3639359836"        
 [4] "https://www.sreality.cz/detail/prodej/byt/2+1/brno-reckovice-druzstevni/3845994844"           
 [5] "https://www.sreality.cz/detail/prodej/byt/2+1/brno-styrice-jilova/1102981468"                 
 [6] "https://www.sreality.cz/detail/prodej/byt/1+kk/brno-dolni-herspice-/1961502812"

Другие вопросы по теме