2017-05-07 154 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