如何用rvest和xpath刮一张桌子?

时间:2016-02-29 19:06:56

标签: r xpath web-scraping rvest

使用以下documentation我一直试图从marketwatch.com抓取一系列表格

这是由下面的代码代表的那个:

enter image description here

链接和xpath已包含在代码中:

url <- "http://www.marketwatch.com/investing/stock/IRS/profile"
valuation <- url %>%
  html() %>%
  html_nodes(xpath='//*[@id="maincontent"]/div[2]/div[1]') %>%
  html_table()
valuation <- valuation[[1]]

我收到以下错误:

Warning message:
'html' is deprecated.
Use 'read_html' instead.
See help("Deprecated") 

提前致谢。

1 个答案:

答案 0 :(得分:9)

该网站不使用html表,因此html_table()无法找到任何内容。它通常使用divcolumndata lastcolumn

所以你可以做点什么

url <- "http://www.marketwatch.com/investing/stock/IRS/profile"
valuation_col <- url %>%
    read_html() %>%
    html_nodes(xpath='//*[@class="column"]')

valuation_data <- url %>%
    read_html() %>%
    html_nodes(xpath='//*[@class="data lastcolumn"]')

甚至

url %>%
  read_html() %>%
  html_nodes(xpath='//*[@class="section"]')

让你大部分时间到达那里。

请同时阅读他们的terms of use - 特别是3.4。