从公共谷歌工作表中抓取数据-不同选项卡的相同url

从公共谷歌工作表中抓取数据-不同选项卡的相同url,r,web-scraping,rvest,R,Web Scraping,Rvest,我想从谷歌表单的公共网页上抓取数据。这是最新的 我特别感兴趣的是第四个选项卡“美国东部时间每天下午4点”中的数据,但是该选项卡的url与所有其他选项卡的url相同(至少根据我尝试过的浏览器的地址栏-Chrome和Firefox)。当我尝试使用R中的rvest包刮取数据时,我最终得到了第二个选项卡“States current”中的数据 我用鼠标右键点击了第一个选项卡“自述”,看看是否能找到关于选项卡名称的信息。看起来第四个选项卡的名称是sheet-button-916628299。但在我的浏览器

我想从谷歌表单的公共网页上抓取数据。这是最新的

我特别感兴趣的是第四个选项卡“美国东部时间每天下午4点”中的数据,但是该选项卡的url与所有其他选项卡的url相同(至少根据我尝试过的浏览器的地址栏-Chrome和Firefox)。当我尝试使用R中的rvest包刮取数据时,我最终得到了第二个选项卡“States current”中的数据

我用鼠标右键点击了第一个选项卡“自述”,看看是否能找到关于选项卡名称的信息。看起来第四个选项卡的名称是sheet-button-916628299。但在我的浏览器中输入以/pubhtml#gid=sheet-button-916628299或/pubhtml#gid=916628299结尾的URL并没有将我带到第四个选项卡

如何找到将我(更重要的是,R中的rvest包)带到第四个选项卡中的数据的URL?

这相当简单:所有选项卡的数据都已加载到页面上,而不是由xhr请求加载。css只是隐藏或取消隐藏每个选项卡的内容

如果在浏览器中使用“开发人员”窗格,则可以看到每个选项卡都位于一个div中,其数字标识由每个选项卡标识中的数字给出

我们可以获取页面并使用正确的css选择器创建数据框,以获得每个选项卡的内容,如下所示:

html_node(page, tab_df$css[4]) %>% html_nodes("table") %>% html_table()
#> [[1]]
#>                                                             
#> 1     1     Date State Positive Negative Pending Death Total
#> 2    NA                                                     
#> 3     2 20200314    AK        1      143                 144
#> 4     3 20200314    AL        6       22      46          74
#> 5     4 20200314    AR       12       65      26         103
#> 6     5 20200314    AZ       12      121      50     0   183
#> 7     6 20200314    CA      252      916             5 1,168
#> 8     7 20200314    CO      101      712             1   814
#> 9     8 20200314    CT       11      125                 136
#> 10    9 20200314    DC       10       49      10          69
#> 11   10 20200314    DE        6       36      32          74
#> 12   11 20200314    FL       77      478     221     3   776
#> 13   12 20200314    GA       66                      1    66
#> 14   13 20200314    HI        2                            2
#> 15   14 20200314    IA       17       83                 100
#> .... (535 rows in total)

库(rvest)
url 2表示当前的#1189059067
#>3美国现行#294274214
#>美国东部时间4日下午4点#916628299
#>5美国东部时间每天下午4点#964640830
#>6个州1983833656
现在我们可以得到第四个标签的内容如下:

html_node(page, tab_df$css[4]) %>% html_nodes("table") %>% html_table()
#> [[1]]
#>                                                             
#> 1     1     Date State Positive Negative Pending Death Total
#> 2    NA                                                     
#> 3     2 20200314    AK        1      143                 144
#> 4     3 20200314    AL        6       22      46          74
#> 5     4 20200314    AR       12       65      26         103
#> 6     5 20200314    AZ       12      121      50     0   183
#> 7     6 20200314    CA      252      916             5 1,168
#> 8     7 20200314    CO      101      712             1   814
#> 9     8 20200314    CT       11      125                 136
#> 10    9 20200314    DC       10       49      10          69
#> 11   10 20200314    DE        6       36      32          74
#> 12   11 20200314    FL       77      478     221     3   776
#> 13   12 20200314    GA       66                      1    66
#> 14   13 20200314    HI        2                            2
#> 15   14 20200314    IA       17       83                 100
#> .... (535 rows in total)