https://i.stack.imgur.com/xeczg.png
Я пытаюсь получить URL-адреса под узлом '.2lines' на веб-странице 'https://www.sgcarmart.com/main/index.php'
library(rvest) url <- read_html('https://www.sgcarmart.com/main/index.php') %>% html_nodes('.2lines') %>% html_attr()
Который я получаю сообщение об ошибке для функции html_nodes:
Error in parse_simple_selector(stream) : Expected selector, got <NUMBER '.2' at 1>
Как мне обойти эту ошибку?
Вы можете использовать селектор xpath, чтобы найти нужные вам узлы. Ссылки на самом деле содержатся в тегах <a> внутри тегов <p>, на которые вы пытаетесь сослаться по классам. Вы можете получить к ним доступ через один xpath:
<a>
<p>
library(rvest) site <- 'https://www.sgcarmart.com' urls <- site %>% paste0("/main/index.php") %>% read_html() %>% html_nodes(xpath = "//*[@class = '2lines']/a") %>% html_attr("href") %>% {paste0(site, .)} urls #> [1] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12485" #> [2] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=11875" #> [3] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=11531" #> [4] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=11579" #> [5] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12635" #> [6] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12507" #> [7] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12644" #> [8] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12622" #> [9] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12650" #> [10] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12651" #> [11] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12589" #> [12] "https://www.sgcarmart.com/new_cars/newcars_overview.php?CarCode=12649"