【发布时间】:2014-10-10 09:54:58
【问题描述】:
readLines 函数将源页面的所有内容显示在一行中。
con = url("target_url_here")
htmlcode = readLines(con)
readLines 函数将源页面的所有行连接在一行中。所以我无法导航到原始 html 源页面的第 15 行。
下一个方法是尝试使用 XML 包或 httr 包来解析它。
library("httr")
html <- GET("target_url_here")
content2 = content(html,as="text")
parsedHtml = htmlParse(content2,asText=TRUE)
通过打印出已解析的Html,它保留了html格式并显示了在源页面中可以看到的所有内容。 现在假设我要提取标题,所以函数
xpathSApply(parsedHtml,"//title",xmlValue)
将给出标题。
但我的问题是,如何导航到 html 的第 15 行?换句话说,如何将 html 视为字符串向量,其中向量的每个元素都是 html 页面/已解析的 html 对象中的单独行。
【问题讨论】:
-
嗯,通常
readLines会逐行读取,因此htmlcode[15]应该在第一个示例中为您提供第 14 行。 -
是的,这会奏效。但是有什么办法可以在解析的 HTML 对象中转到第 15 行?
-
@NovneetNov 也许将其转换为字符并在
strsplit(as(parsedHtml, "character"), "\n")[[1]][15]的脉络中分割换行。
标签: html r xml-parsing html-parsing