我对网络抓取还是个新手. 我正在使用R中的rvest包来抓取Web内容,并且我想 Select 段落(

),不包含链接().

到目前为止,我使用这种方法还不是很成功:

html <- read_html("https://www.news4teachers.de/2023/08/schaemt-euch-deutschland-steht-vor-den-vereinten-nationen-am-pranger-weil-es-die-inklusion-an-schulen-verweigert/")

html |>
  html_elements("article") |>
  html_elements("p") |>
  html_elements(":not(a)")

推荐答案

不幸的是,伪类:has()似乎不受 selectr/cssselect,rvest使用它们来解析CSS Select 器. 否则,这样的事情就会奏效:

# html |>
#  html_elements("article") |>
#  html_elements("p:not(:has(a))")

我们可以通过将xml_nodelist转换为character来解决此问题 其中<p>个元素中有<a>.那我们 将xml_nodelist设置为仅包括中没有LINK/<a>的那些 他们.

library(rvest)
library(stringr)

html <-
  read_html(
    "https://www.news4teachers.de/2023/08/schaemt-euch-deutschland-steht-vor-den-vereinten-nationen-am-pranger-weil-es-die-inklusion-an-schulen-verweigert/"
  )

all_p <-
  html |>
  html_elements("article") |>
  html_elements("p")

has_link <- all_p |> as.character() |> str_detect("</a>")

all_p[!has_link]
#> {xml_nodeset (13)}
#>  [1] <p>GENF. <strong>„Schämt Euch!“ – so heißt es auf einem Transparent, das ...
#>  [2] <p><script charset="utf-8" async consent-original-src-_="https://platfor ...
#>  [3] <p>Es ist fast schon dreist, wie Deutschland auf die offizielle Staatenp ...
#>  [4] <p>Auch in einer gemeinsamen Stellungnahme von einem Bündnis deutscher N ...
#>  [5] <p>„In keinem Bildungsbereich – von der Kita über Schule, Ausbildung und ...
#>  [6] <p>Die Ausführungen der Bundesregierung im Staatenbericht, so heißt es w ...
#>  [7] <p>Sonderpädagoginnen und -pädagogen würden immer noch weitestgehend für ...
#>  [8] <p>Die Einführung inklusiver Bildung in Regelschulen sei von erheblichem ...
#>  [9] <p><script charset="utf-8" async consent-original-src-_="https://platfor ...
#> [10] <p><script charset="utf-8" async consent-original-src-_="https://platfor ...
#> [11] <p>Der Rechtsanspruch auf inklusive Schulbildung sei in den meisten Bund ...
#> [12] <p><iframe class="wp-embedded-content" sandbox="allow-scripts" security= ...
#> [13] <p> </p>

Html相关问答推荐

如何通过将项目包裹在迪夫中来保持最右列的对齐方式来对齐项目?

网格容器中的定心元件

如何使我的组织 struct 图的连接线响应?

我正在try 向列表中的图像添加悬停,以放大图像并将div的不透明度设置为1而不是0

如何从elementor中的滑块中获取文本?

如何在ASP.NET Core中添加换行符

仅 Select 悬停的级别,而不 Select 其父级或子级

为什么我的 html 对话框在 React 中没有渲染在我的内容之上?

在 html 和 css 中绘制表格内的倾斜线

HTML 重定向到当前服务器

为什么 `::before` 在使用内容 `url(svg)` 时会增加一些高度

如何用js和CSS在两点之间画一条线

当我们在vue中使用截断大文本时如何显示标题属性?

在HTML请求中添加源URL

当作为常规图片输入时,Cloudfront分布式图像可显示,但作为背景图像不显示

CSS Grid 布局:1 大图和 3 小图

如何使用CSS Select 同级元素的::before伪元素?

如何垂直平移一个元素,使其新位置位于另外两个元素之间?

如何调整网格中单元格的高度?

两个span,一个在div居中,好像没有另一个,另一个在右边