使用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选择器可以在大多数页面上很好地工作,但是某些段落的内容为空。
答案 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创建