rvest只返回刮表的标题

时间:2017-12-03 23:37:40

标签: r web-scraping rvest

以下仅返回使用rvest刮取的所需表格的标题。

library(rvest)

url <-("https://www.baseball-reference.com/draft/?year_ID=2017&draft_round=1&draft_type=junreg&query_type=year_round&from_type_jc=0&from_type_hs=0&from_type_4y=0&from_type_unk=0")

draft <- read_html(url)

draft_first_html <- html_nodes(draft,xpath = '//*[@id="div_draft_stats"]')

我尝试过几个不同的xpath而没有运气。它应该返回36个观察值和24个变量。

2 个答案:

答案 0 :(得分:1)

在更正您的网址后,这对我有用:

draft <- read_html(url)
draft %>% 
  html_node("#draft_stats") %>% 
  html_table()

答案 1 :(得分:0)

您已经接近答案了。您只需要更正id即可获取正确的html节点。然后在该节点上使用html_table()将为您提供所需的数据。我的解决方案:

library(rvest)

url <-("https://www.baseball-reference.com/draft/?year_ID=2017&draft_round=1&draft_type=junreg&query_type=year_round&from_type_jc=0&from_type_hs=0&from_type_4y=0&from_type_unk=0")

draft <- read_html(url)

draft_first_html <- html_node(draft,xpath = '//*[@id="draft_stats"]')

draft_df <- html_table(draft_first_html)

代码更少的更干净的解决方案是:

library(rvest)

url <-("https://www.baseball-reference.com/draft/?year_ID=2017&draft_round=1&draft_type=junreg&query_type=year_round&from_type_jc=0&from_type_hs=0&from_type_4y=0&from_type_unk=0")

draft_df <- read_html(url) %>%
  html_node(xpath = '//*[@id="draft_stats"]') %>% 
  html_table()

希望它有所帮助!我没有检查网页的条款和条件,但是请务必确保在抓取之前遵守条款:)

如果您对我的解决方案不了解,请不要在下面发表评论!