【问题标题】:rvest: how to find all classes used in an HTML page?rvest:如何查找 HTML 页面中使用的所有类?
【发布时间】:2016-04-05 13:02:35
【问题描述】:

我想找到下面网页中使用的所有类。 rvest 是否可以做到这一点,还是我需要一些正则表达式/grepl? 一旦知道类的名称,我就可以抓取信息,但是对于具有动态构建的类名称的页面,对所使用的类进行概述会很方便。

library(rvest)

doc_url<-"http://curia.europa.eu/juris/document/document.jsf?text=&docid=160583&pageIndex=0&doclang=fr&mode=req&dir=&occ=first&part=1&cid=676771"

page<-read_html(doc_url)

language<- page%>%html_nodes(".C49FootnoteLangue")%>%html_text()

【问题讨论】:

  • 您要查找所有类并将名称保存在某个数组中吗?或者只是将样式应用于所有找到的类?
  • 我想找到所有使用的类并以结构化的方式(列表,df)保存它们,以供进一步处理
  • page %&gt;% html_nodes("*") %&gt;% html_attr("class") %&gt;% unique() ?
  • 完全符合我的要求。使用 css 选择器通配符的可能性让我无法理解。谢谢(回答和 rvest)。

标签: html r css-selectors wildcard rvest


【解决方案1】:

将@hadley 的评论转换为CW 答案,您可以使用* 通配符获得所有类的向量。

因此,该方法如下所示:

page <- read_html(doc_url)

page %>% 
  html_nodes("*") %>% 
  html_attr("class") %>% 
  unique()
#  [1] NA                          "component"                 "waitBlock"
#  [4] "waitBlockContainer"        "toggle_img"                "btn_impression"
#  [7] "document_language"         "outputEcli"                "C19Centre"
# [10] "C71Indicateur"             "C02AlineaAltA"             "C72Alineadroite"
# [13] "C75Debutdesmotifs"         "C01PointnumeroteAltN"      "C04Titre1"
# [16] "C03Tiretlong"              "C05Titre2"                 "C06Titre3"
# [19] "C07Titre4"                 "C48DispositifIntroduction" "C08Dispositif"
# [22] "C77Signatures"             "C49FootnoteLangue"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 2016-10-27
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多