rvest R scraping - 来自html_table()的缺失表

时间:2018-03-16 10:47:30

标签: html r web-scraping rvest

我是rvest的初学者。我正试图从意大利内政部的网站上搜集一些表格。我使用基于在线教程的代码,但是html_table失败找到任何表。 当我尝试获取所有表时会发生这种情况:

DECLARE @FDATE  DATE = '2018-01-01' 
        ,@TDATE DATE = '2018-01-10'

;WITH CTE_DATE
AS  (
    SELECT  @FDATE AS CDATE
    UNION ALL
    SELECT  DATEADD(DAY,1,CDATE)
    FROM    CTE_DATE
    WHERE   DATEADD(DAY,1,CDATE) <= @TDATE
)
SELECT  C.CDATE AS [DATE],COUNT(*)  AS [COUNT]
FROM    CTE_DATE AS C
    LEFT OUTER JOIN [MY_TABLE] AS M ON C.CDATE = M.[DATE] --*[your table here]*
GROUP BY C.CDATE
OPTION ( MAXRECURSION 0 );

当我尝试使用Xpath获取单个

url <- "http://finanzalocale.interno.gov.it/apps/floc.php/certificati/index/codice_ente/1030491450/cod/4/anno/2014/md/0/cod_modello/CCOU/tipo_modello/U/cod_quadro/04"
webpage <- read_html(url)
tables <- html_table(webpage)
table1 <- tables[[1]]

这个问题似乎与本网站有关,因为上述代码适用于维基百科页面。

本网站上发布的类似问题的解决方案(例如删除评论标签)对我不起作用。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

在没有RSelenium或splashr的情况下工作正常

library(rvest)
library(tidyverse)
pg <- read_html("http://finanzalocale.interno.gov.it/apps/floc.php/certificati/index/codice_ente/1030491450/cod/4/anno/2014/md/0/cod_modello/CCOU/tipo_modello/U/cod_quadro/04")

html_nodes(pg, "table.table-striped") %>%
  purrr::map(html_table) %>%
  purrr::map(as_tibble)
## [[1]]
## # A tibble: 75 x 11
##    `FUNZIONI E SERVIZI / … Personale  `Acquisto di beni … `Prestazioni di…
##    <chr>                   <chr>      <chr>               <chr>           
##  1 Funzioni generali di a… 141.967.7… 2.489.137,83        59.941.306,62   
##  2 Organi istituzionali, … 16.229.61… 320.049,90          8.575.927,57    
##  3 indennità per gli orga… 0,00       0,00                4.741.000,00    
##  4 - Segreteria generale,… 40.013.84… 353.042,85          13.399.011,09   
##  5 Gestione economica, fi… 7.925.580… 48.425,00           8.885.886,94    
##  6 Gestione delle entrate… 7.630.190… 12.111,52           13.313.546,15   
##  7 Gestione dei beni dema… 2.166.540… 1.759,99            1.233.312,68    
##  8 Ufficio tecnico         14.404.02… 67.468,00           2.940.932,06    
##  9 Anagrafe, stato civile… 16.826.86… 293.263,23          6.139.023,55    
## 10 Altri servizi generali… 36.771.12… 1.393.017,34        5.453.666,58    
## # ... with 65 more rows, and 7 more variables: `Utilizzo di beni di
## #   terzi` <chr>, Trasferimenti <chr>, `Interessi passivi e oneri
## #   finanziari diversi` <chr>, `Imposte e tasse` <chr>, `Oneri
## #   straordinari della gestione corrente` <chr>, `Ammortamenti di
## #   esercizio` <chr>, Totale <chr>
## 
## [[2]]
## # A tibble: 75 x 11
##    `FUNZIONI E SERVIZI / … Personale  `Acquisto di beni … `Prestazioni di…
##    <chr>                   <chr>      <chr>               <chr>           
##  1 Funzioni generali di a… 131.219.7… 1.153.701,07        31.627.112,30   
##  2 Organi istituzionali, … 15.658.15… 94.401,50           5.841.240,89    
##  3 indennità per gli orga… 0,00       0,00                3.769.143,70    
##  4 Segreteria generale, p… 38.448.56… 167.482,23          7.507.263,62    
##  5 Gestione economica, fi… 7.662.138… 29.961,40           6.347.472,21    
##  6 Gestione delle entrate… 7.487.402… 7.671,92            2.497.130,97    
##  7 Gestione dei beni dema… 2.100.595… 1.759,99            852.589,53      
##  8 Ufficio tecnico         11.334.26… 47.329,00           1.568.994,43    
##  9 Anagrafe, stato civile… 16.144.91… 223.148,43          4.077.270,69    
## 10 Altri servizi generali… 32.383.70… 581.946,60          2.935.149,96    
## # ... with 65 more rows, and 7 more variables: `Utilizzo di beni di
## #   terzi` <chr>, Trasferimenti <chr>, `Interessi passivi e oneri
## #   finanziari diversi` <chr>, `Imposte e tasse` <chr>, `Oneri
## #   straordinari della gestione corrente` <chr>, `Ammortamenti di
## #   esercizio` <chr>, Totale <chr>
## 
## [[3]]
## # A tibble: 74 x 11
##    `FUNZIONI E SERVIZI / … Personale  `Acquisto di beni … `Prestazioni di…
##    <chr>                   <chr>      <chr>               <chr>           
##  1 Funzioni generali di a… 5.593.882… 2.190.159,89        22.691.402,00   
##  2 Organi istituzionali, … 463.851,43 1.649.220,45        2.549.386,60    
##  3 indennità per gli orga… 0,00       0,00                554.624,70      
##  4 Segreteria generale, p… 1.312.740… 47.613,00           8.238.186,49    
##  5 Gestione economica, fi… 227.143,48 12.365,99           2.101.177,76    
##  6 Gestione delle entrate… 220.687,71 16.698,92           3.981.304,84    
##  7 Gestione dei beni dema… 62.536,51  293,70              255.524,99      
##  8 Ufficio tecnico         1.933.388… 27.547,69           1.236.148,00    
##  9 Anagrafe, stato civile… 394.806,86 69.201,92           1.971.067,96    
## 10 Altri servizi generali  978.727,38 367.218,22          2.358.605,36    
## # ... with 64 more rows, and 7 more variables: `Utilizzo di beni di
## #   terzi` <chr>, Trasferimenti <chr>, `Interessi passivi e oneri
## #   finanziari diversi` <chr>, `Imposte e tasse` <chr>, `Oneri
## #   straordinari della gestione corrente` <chr>, `Ammortamenti di
## #   esercizio` <chr>, Totale <chr>

答案 1 :(得分:1)

您可以使用RSelenium打开生成页面的浏览器,然后使用rvest抓取表格(就像您正在做的那样):

library(rvest)
library(RSelenium)
rD <- rsDriver()
remDr <- rD[["client"]]
remDr$navigate("http://finanzalocale.interno.gov.it/apps/floc.php/certificati/index/codice_ente/1030491450/cod/4/anno/2014/md/0/cod_modello/CCOU/tipo_modello/U/cod_quadro/04")
webpage <- read_html(remDr$getPageSource()[[1]])
tables <- webpage %>% html_table(fill=T)