【问题标题】:rvest R scraping - Missing tables from html_table()rvest R 抓取 - html_table() 中缺少表
【发布时间】:2018-08-25 09:52:32
【问题描述】:

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

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]]

当我尝试使用 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"
table <- url %>%
  read_html() %>%
  html_nodes(xpath='//*[@id="center"]/div[3]/table') %>%
  html_table()
table <- table[[1]]
head(table)

问题似乎是该网站特有的,因为上述代码适用于例如维基百科页面。

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

任何帮助将不胜感激!

【问题讨论】:

  • 看起来页面是用javascript生成的。将 read_html(url) 的结果与网页的 html 进行比较。
  • 感谢您的回复。我使用 write_xml 保存了 read_html(url) 的结果。这确实是一个不同的页面。保存的页面显示“Servizio sospeso. La sua Richiesta è stata bloccata dai sistemi posti a protezione del sito web. etc etc”,您可以将其翻译为“服务暂停。您的请求被保护系统阻止。等等”谷歌搜索后,看起来与此处讨论的问题相同:stackoverflow.com/questions/46153600/… 但在这篇文章中,他们提出了使用 Python 而非 R 的解决方案

标签: html r web-scraping rvest


【解决方案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)

【讨论】:

    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2015-09-08
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多