【问题标题】:How to read specific tags using XML2如何使用 XML2 读取特定标签
【发布时间】:2019-05-04 13:03:37
【问题描述】:

问题

我正在尝试使用 xml2 获取 https://www.ato.gov.au/sitemap.xml 中的所有 url(注意它是一个 ~9mb 文件)。任何指针表示赞赏。

我的尝试

library("xml2")
data1 <- read_xml("https://www.ato.gov.au/sitemap.xml")
xml_find_all(data, ".//loc")

我没有得到我需要的输出:

{xml_nodeset (0)}

【问题讨论】:

    标签: r xml2


    【解决方案1】:

    没有使用xml2,但我可以使用rvest获得它

    library(dplyr)
    library(rvest)
    
    url <- "https://www.ato.gov.au/sitemap.xml"
    
    url %>%
      read_html() %>%
      html_nodes("loc") %>%
      html_text()
    

    【讨论】:

      【解决方案2】:

      以防万一您需要数据框中的所有网址,您可以使用以下代码:

      library(XML)
      library(xml2)
      library(httpuv)
      library(httr)
      library(RCurl)
      library(data.table)
      library(dplyr)
      url <- "https://www.ato.gov.au/sitemap.xml"
      xData <- getURL(url)
      doc <- xmlParse(xData)
      data<-xmlToList(doc)
      a<-as.data.frame(unlist(data))
      a<-dplyr::filter(a,grepl("http",`unlist(data)`) )
      head(a)
      

      以上代码将为您提供一个包含所有 url 列表的数据框。我只是想知道您还可以使用“Xenu”url fetcher 软件从网站中提取未包含在站点地图中的 url。 让我知道,以防你卡在中间的某个地方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 2020-10-19
        • 2018-06-12
        • 1970-01-01
        相关资源
        最近更新 更多