如何删除网站数据收集结果中的\ n \ t \ t \ tt?

时间:2014-02-22 20:17:39

标签: html r xpath

我想从网站上检索产品名称,所以我在下面写下我的代码。但结果包括一些简单的信息,如\ n \ t \ t \ t。有人可以帮我如何删除这些东西? 代码:

检索名称

reddoturl <- 'http://red-dot.de/pd/online-exhibition/?lang=en&c=163&a=0&y=2013&i=0&oes='
library(XML)
doc <- htmlParse(reddoturl)

审核数据

reviews<-xpathSApply(doc,'//div[@class="work_contaienterner_headline"]',xmlValue)

结果: [1]“VZ-C6 / VZ-C3D \ n \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ n \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t文件相机\ n \ t \ t \ t \ t \ t \ t \ n \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t“

2 个答案:

答案 0 :(得分:2)

我担心删除所有标签但是会这样做:

> reviews <- "VZ-C6 / VZ-C3D\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tDocument Camera\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" 
> reviews <- gsub( "\\\t", "", reviews)
> reviews
[1] "VZ-C6 / VZ-C3D\n\nDocument Camera\n\n"

阅读?regex并了解需要额外的反斜杠,因为R和正则表达式都使用“\”作为转义符,因此在前往模式的路上有两个级别的字符解析。但是在替换参数中并非如此,因此您不需要在那里使用双重转义。所以如果你想用一个“\ n”替换那些“\ n \ n”,你可以使用:

> reviews <- gsub( "\\\n\\\n", "\n", reviews)
> reviews
[1] "VZ-C6 / VZ-C3D\nDocument Camera\n"

答案 1 :(得分:1)

R中字符串的“查找和替换”操作的首选函数是sub(仅替换第一个实例)和gsub(替换所有实例)。这些函数在regular expression表示的字符串中查找模式,并用固定的文本字符串替换它。

例如:

s <- "VZ-C6 / VZ-C3D\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tDocument Camera\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"

gsub('\t|\n', '', s)

[1] "VZ-C6 / VZ-C3DDocument Camera"

上面的模式|中的管道运算符(\t|\n)确保\n \t匹配,并且''的第二个参数表示用空字符串替换匹配(即什么都没有)。

虽然上面的s只包含一个元素,但gsubsub已经过矢量化,因此也适用于任意长度的整个矢量。