使用 R 进行网页抓取,内容

Web scraping with R, content

我刚开始在 R 中进行网页抓取,我输入了这段代码:

mps <- read_html("http://tunisie-annonce.com/AnnoncesImmobilier.asp")

mps %>%
    html_nodes("tr") %>%
    html_text()

为了获取我放入文本文件中的所需内容。我的问题是我想消除这些红点,但我不能。请你帮助我好吗? 我认为这些要点正在替换 html 代码中的 <b><br>

构建该页面的人非常沮丧地将 table 组装在 table 中,但没有定义为 <table> 标记本身,因此重新定义它是最容易的,这样它会解析更多轻松:

library(rvest)

mps <- read_html("http://tunisie-annonce.com/AnnoncesImmobilier.asp")

df <- mps %>%
    html_nodes("tr.Entete1, tr.Tableau1") %>%    # get correct rows
    paste(collapse = '\n') %>%     # paste nodes back to a single string
    paste('<table>', ., '</table>') %>%     # add enclosing table node
    read_html() %>%    # reread as HTML
    html_node('table') %>% 
    html_table(fill = TRUE) %>%    # parse as table
    { setNames(.[-1,], make.names(.[1,], unique = TRUE)) }    # grab names from first row

head(df)
#>          X          Région NA.           Nature NA..1        Type NA..2
#> 2     Prix            <NA>  NA             <NA>    NA        <NA>    NA
#> 3 Modifiée                  NA             <NA>    NA        <NA>    NA
#> 4                  Kelibia  NA          Terrain    NA  Terrain nu    NA
#> 5          Cite El Ghazala  NA         Location    NA App. 4 pièc    NA
#> 6                 Le Bardo  NA         Location    NA App. 1 pièc    NA
#> 7                 Le Bardo  NA Location vacance    NA App. 3 pièc    NA
#>                   Texte.annonce NA..3   Prix Prix.1        X.1 Modifiée
#> 2                          <NA>    NA   <NA>   <NA>       <NA>     <NA>
#> 3                          <NA>    NA   <NA>   <NA>       <NA>     <NA>
#> 4      Terrain a 5 km de kelibi    NA 80 000        07/05/2017         
#> 5      S plus 3 haut standing c    NA    790        07/05/2017         
#> 6          Appartements meubles    NA 40 000        07/05/2017         
#> 7 Un bel appartement au bardo m    NA    420        07/05/2017         
#>   Modifiée.1 NA..4 NA..5
#> 2       <NA>    NA    NA
#> 3       <NA>    NA    NA
#> 4       <NA>    NA    NA
#> 5       <NA>    NA    NA
#> 6       <NA>    NA    NA
#> 7       <NA>    NA    NA

请注意,这里还有很多 NA 和其他杂物有待清理,但至少此时可以使用。

您始终可以使用正则表达式来删除不需要的字符,例如,

mps <- gsub("•", " ", mps)