用rvest抓取时没有数据

问题描述 投票:2回答:1

我试图刮一个网站,但它没有给我任何数据。

#Get the Data
require(tidyverse)
require(rvest)

#specify the url
url <- 'https://www.travsport.se/sresultat?kommando=tevlingsdagVisa&tevdagId=570243&loppId=0&valdManad&valdLoppnr&source=S'

#get data
url %>%
  read_html() %>% 
  html_nodes(".green div:nth-child(1)") %>% 
  html_text()
character(0)

我也试过使用xpath = '//*[contains(concat( " ", @class, " " ), concat( " ", "green", " " ))]//div[(((count(preceding-sibling::*) + 1) = 1) and parent::*)]//a',但是这给了我0个数据相同的结果。

我期待马的名字。即使页面上的数据是由javascript呈现的,我也不应该得到一些javascript代码吗?

我不知道我应该在这里使用什么CSS选择器。

r rvest
1个回答
2
投票

您只需使用RSelenium软件包来抓取动态页面:

library(RSelenium)
#specify the url
url <- 'https://www.travsport.se/sresultat?kommando=tevlingsdagVisa&tevdagId=570243&loppId=0&valdManad&valdLoppnr&source=S'

#Create the remote driver / navigator
rsd <- rsDriver(browser = "chrome")
remDr <- rsd$client

#Go to your url
remDr$navigate(url)
page <- read_html(remDr$getPageSource()[[1]])

#get your horses data by parsing Selenium page with Rvest as you know to do
page %>% html_nodes(".green div:nth-child(1)") %>% html_text()

希望这会有所帮助

Gottavianoni

© www.soinside.com 2019 - 2024. All rights reserved.