【发布时间】:2019-01-21 17:18:51
【问题描述】:
当使用 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 选择器在大多数页面上都表现不错,但某些段落的内容显示为空。
【问题讨论】:
-
如果您查看该页面的源代码(从 http 请求实际返回的内容),您会发现数据确实不在
<p>标记内。他们似乎有一堆奇怪的结束<p/>标签。您可以使用cat(as.character(page))查看源代码。所以问题真的是你的选择器不正确。请注意,如果您使用的是 Chrome,它可能会以不同于rvest的方式解析页面,以更宽容地处理“坏”HTML。 -
谢谢!现在我知道为什么它不起作用了。有没有办法在 R 中获得与 chrome 中相同的解析?
-
您可以使用RSelenium 之类的东西来运行无头版本的 Chrome。