rvest:选择不包含链接(<p>)的段落(<a>)

问题描述 投票:0回答:2

我是网络抓取新手。 我正在使用 R 中的 rvest 包来抓取网页内容,并且我想选择不包含链接 () 的段落 (

)。

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

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)")
html css r css-selectors rvest
2个回答
1
投票

要获取所有不包含任何

<p>
标签的
<a>
标签,您可以使用 xpath 表达式:

html_elements(html, xpath = "//article/div/p[not(descendant::a)]") 
#> {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>

创建于 2023-09-21,使用 reprex v2.0.2


0
投票

您可以选择所有

<p>
标签,然后在 R 中过滤它们(如果它们有任何
<a>
标签)。例如

html |>
  html_elements("article") |>
  html_elements("p") |>
  Filter(function(x) {
    length(html_element(x, "a"))<1
  }, x=_)
© www.soinside.com 2019 - 2024. All rights reserved.