【问题标题】:Web scraping with R, content使用 R 进行网页抓取,内容
【发布时间】:2017-10-05 05:02:21
【问题描述】:

我刚开始在 R 中进行网络抓取,我输入了以下代码:

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

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

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

【问题讨论】:

  • 着陆页包含一个表格。我不清楚你的目的,你想提取该表的内容并在 R 中的 data.frame 中吗?或者您可能对页面的其他内容感兴趣?
  • @SabDeM 是的,是的,我想提取表格的内容。我提取了该文本,我只需要消除那些奇怪的点即可将其放入数据框中。

标签: r web html-parsing screen-scraping rvest


【解决方案1】:

构建该页面的人非常沮丧地将表格组装在一个表格中,但并未将其定义为 &lt;table&gt; 标记本身,因此重新定义它最容易,以便更容易解析:

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

请注意,这里还有很多 NAs 和其他杂物需要清理,但至少现在可以使用。

【讨论】:

  • 非常感谢您!你在救我的命!这正是我需要的。我现在将努力消除 NA,非常感谢您
【解决方案2】:

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

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

【讨论】:

  • 谢谢@mkearney 但是我试过了,但没有用。点很特别,不是简单的字符...
  • 谢谢@mkearny!但这里的问题是点不像普通字符。他们不能用 gsub 消除
猜你喜欢
  • 1970-01-01
  • 2014-12-28
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多