2017-05-07 158 views
3

我刚开始与网络中的R刮,我把这个代码:网站有R刮,内容

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

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

为了获得所需的内容,我把一个文本文件中。我的问题是我想消除这些红点,但我不能。你可以帮我吗? 我认为这些观点正在取代HTML代码中的<b><br>

enter image description here

+0

登陆页面包含一个表。你的目的不清楚,你想提取该表的内容,并在R的data.frame?或者您可能对该网页的其他内容感兴趣? – SabDeM

+0

@SabDeM是的我想提取表的内容。我提取了这些文本,我只需要消除奇怪的点就可以将数据框放入。 – sanjanasan

回答

1

谁建造,页面非常令人沮丧的组装表的表内,但不能定义为<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 s和其他cruft在这里还没有被清理,但至少它在这一点上是可用的。

+0

非常感谢youuuuu!你正在拯救我的生命!这正是我需要的。我现在要工作,消除那不适用谢谢你非常muuuch – sanjanasan

0

您可以随时使用正则表达式来删除不想要的字符,例如,

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

Thak你@mkearney BUt我试过了,它没有工作。点是特殊的,它不是简单的字符... – sanjanasan

+0

谢谢@mkearny!但问题在于点不像普通字符。它们不能用gsub消除 – sanjanasan