Rvest返回空段

时间:2019-01-21 17:18:52

标签: r rvest

使用rvest软件包从网页上抓取文字时,某些段落返回空值,但不应返回。

该网页为: https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000005620562

我想要“文章”下的段落,因此我将“ .article p”用作CSS选择器。它应该返回9个段落(因为它们是填充物,所以应该为5)。我确实有9个段落,但有8个是空的!

page=read_html("https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000005620562")
html_text(html_nodes(page,".article p"))

我会发布一个屏幕截图,但是我没有足够的声誉... 运行此行将返回一个包含9个字符串的向量,但它们为空,例如第8个。 第1、3和5段应包含文本,但此处显示为空。

谢谢大家的时间。

编辑: 有一点背景:我需要从该网站上抓取很多页面,以获得文章的核心文本,以便对其进行语言分析。

“。article p” CSS选择器可以在大多数页面上很好地工作,但是某些段落的内容为空。

1 个答案:

答案 0 :(得分:0)

为什么不做这样的事情?

library(tidyverse)
library(rvest)
#> Loading required package: xml2
#> 
#> Attaching package: 'rvest'
#> The following object is masked from 'package:purrr':
#> 
#>     pluck
#> The following object is masked from 'package:readr':
#> 
#>     guess_encoding


page <- read_html("https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000005620562")

page %>% 
  html_nodes(".article") %>% 
  html_text() %>% 
  str_remove_all(pattern = "\nArticle\\s[0-9]")
#> [1] " En savoir plus sur cet article...\n\n   Sont désignées comme gares ferroviaires ouvertes au trafic international au sens de l'article 35 quater de l'ordonnance du 2 novembre 1945 susvisée au titre desquelles peuvent être créées des zones d'attente les gares suivantes :\n   Lille-Europe, Lille-Flandres, Aulnoye, Strasbourg, Thionville, Forbach, Metz, Sarreguemines, Pontarlier, Morteau, Modane, Cerbère, Nice, Hendaye, Calais-Fréthun, Paris-Gare du Nord, Paris-Gare de l'Est, Paris-Gare de Lyon.\n "
#> [2] " En savoir plus sur cet article...\n\n   Le présent arrêté abroge les dispositions de l'arrêté du 4 mai 1995 désignant les gares ferroviaires ouvertes au trafic international.\n\n "                                                                                                                                                                                                                                                                                                                                
#> [3] "\nLes préfets et, à Paris, le préfet de police sont chargés, chacun en ce qui le concerne, de l'exécution du présent arrêté, qui sera publié au Journal officiel de la République française.\n\n "

reprex package(v0.2.1)于2019-01-21创建