向文本元素添加空格
Adding whitespace to text elements
有没有办法为每个包含文本的元素添加空格?
对于这个例子:
movie <- read_html("http://www.imdb.com/title/tt1490017/")
cast <- html_nodes(movie, "#titleCast span.itemprop")
cast %>% html_structure()
[[1]]
<span.itemprop [itemprop]>
{text}
[[2]]
<span.itemprop [itemprop]>
{text}
我想在每个文本元素 before 使用 html_text()
添加尾随空格。我有另一个用例,我想在文档层次结构中使用更高的 html_text()
。结果是多个文本组合在一个向量元素中。这使得无法推断相应部分的开始和结束。
你的意思是这样的吗?
doc <- minimal_html("Hello<p>World</p>")
doc %>% html_text # HelloWorld
doc %>% html_text_collapse(" ") # Hello World
如果是,代码如下:
require(stringi)
require(rvest)
html_text_collapse <- function(x, collapse = " ", trim = TRUE){
text <- html_text(html_nodes(x, xpath = ".//text()[normalize-space()]"))
if (trim) {
text <- stri_trim_both(text)
}
paste(text, collapse = collapse)
}
有没有办法为每个包含文本的元素添加空格? 对于这个例子:
movie <- read_html("http://www.imdb.com/title/tt1490017/")
cast <- html_nodes(movie, "#titleCast span.itemprop")
cast %>% html_structure()
[[1]]
<span.itemprop [itemprop]>
{text}
[[2]]
<span.itemprop [itemprop]>
{text}
我想在每个文本元素 before 使用 html_text()
添加尾随空格。我有另一个用例,我想在文档层次结构中使用更高的 html_text()
。结果是多个文本组合在一个向量元素中。这使得无法推断相应部分的开始和结束。
你的意思是这样的吗?
doc <- minimal_html("Hello<p>World</p>")
doc %>% html_text # HelloWorld
doc %>% html_text_collapse(" ") # Hello World
如果是,代码如下:
require(stringi)
require(rvest)
html_text_collapse <- function(x, collapse = " ", trim = TRUE){
text <- html_text(html_nodes(x, xpath = ".//text()[normalize-space()]"))
if (trim) {
text <- stri_trim_both(text)
}
paste(text, collapse = collapse)
}