使用rvest工具时,是否可以通过网络方式刮取HTML表格数据并始终显示为“”?

问题描述 投票:0回答:1
        <td headers="apcl1" data-dyn="1" class="text-center">1<span class="hidden"> authorized course</span></td>
        <td headers="apcl2" data-dyn="2" class="text-center">1<span class="hidden"> authorized course</span></td>
        <td headers="apcl3" data-dyn="3" class="text-center">1<span class="hidden"> authorized course</span></td>
        <td headers="apcl4" data-dyn="4" class="text-center">--<span class="hidden"> no authorized courses</span></td>

对于上面的HTML代码,我正在尝试在>和

我正在使用R和rvest软件包,我的代码如下:

individual_temp_url <- "https://apcourseaudit.inflexion.org/ledger/school.php?a=MTQ4Mzk=&b=MA=="

read_html(individual_temp_url) %>%
html_nodes('td') %>%
html_text()

但是,当我这样做时,对于每个td标签,我得到的都是“”。寻找帮助来提取每个td标签的数字吗?

html r web-scraping rvest
1个回答
2
投票

td元素are在您下载的html上为空白。在浏览器中,页面加载后,它们是由JavaScript填充的,页面中的JavaScript标记来自页面脚本标记之一。您可以提取此内容并解析JSON,以获得一个不错的数据框:

library(rvest)
#> Loading required package: xml2
individual_temp_url <- "https://apcourseaudit.inflexion.org/ledger/school.php?a=MTQ4Mzk=&b=MA=="

df <- read_html(individual_temp_url) %>%
html_nodes('script') %>%
html_text() %>%
  `[`(4) %>%
  strsplit("dataSet = |\r\n|;") %>%
  unlist() %>%
  `[`(3) %>%
  jsonlite::fromJSON()

df
#>       data    data    data    data    data    data    data    data    data
#> 1  2007-08 2008-09 2009-10 2010-11 2011-12 2012-13 2013-14 2014-15 2015-16
#> 2        0       0       0       0       0       1       1       1       1
#> 3        2       2       2       2       2       2       2       2       2
#> 4        3       3       3       3       3       2       2       4       3
#> 5        1       1       1       1       1       1       1       1       2
#> 6        2       3       2       2       2       2       2       2       2
#> 7        1       1       1       1       1       1       1       1       1
#> 8        0       0       0       0       0       0       0       0       0
#> 9        1       1       1       1       1       1       1       1       1
#> 10       1       1       1       1       1       1       1       1       1
#> 11       1       1       1       1       1       2       2       3       1
#> 12       0       0       2       2       2       2       2       2       1
#> 13       0       0       1       1       1       1       1       1       1
#> 14       0       0       0       0       0       1       1       1       0
#> 15       0       0       0       0       1       1       1       1       1
#> 16       0       0       0       0       0       0       0       2       2
#> 17       0       0       0       0       0       0       0       0       1
#> 18       0       0       0       0       0       2       2       0       0
#> 19       0       0       0       0       0       0       0       0       0
#> 20       1       1       1       1       1       1       2       2       2
#> 21       1       1       1       1       1       1       1       1       1
#> 22       1       1       1       1       1       1       1       1       1
#> 23       1       1       1       1       1       2       2       2       2
#> 24       1       2       2       1       1       1       1       1       1
#> 25       2       3       4       2       1       1       1       1       2
#> 26       2       3       3       2       1       2       1       1       2
#>       data    data    data    data
#> 1  2016-17 2017-18 2018-19 2019-20
#> 2        1       1       1       0
#> 3        2       2       2       1
#> 4        0       0       1       2
#> 5        0       0       0       2
#> 6        2       2       2       1
#> 7        1       1       1       1
#> 8        1       1       1       1
#> 9        1       1       1       1
#> 10       1       2       2       1
#> 11       1       1       1       1
#> 12       2       2       2       2
#> 13       1       1       1       1
#> 14       0       0       0       0
#> 15       1       1       1       1
#> 16       2       2       2       1
#> 17       0       1       1       0
#> 18       0       0       0       0
#> 19       0       0       1       1
#> 20       0       0       1       1
#> 21       1       1       1       1
#> 22       0       0       1       0
#> 23       2       2       2       2
#> 24       1       1       0       1
#> 25       2       2       3       3
#> 26       0       0       1       1

reprex package(v0.3.0)在2020-03-07创建

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