以下仅返回使用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个变量。
答案 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()
希望它有所帮助!我没有检查网页的条款和条件,但是请务必确保在抓取之前遵守条款:)
如果您对我的解决方案不了解,请不要在下面发表评论!