【发布时间】:2026-01-11 01:25:01
【问题描述】:
任何人都可以帮忙从下面的链接中提取评论及其位置吗?我已经成功地编写了代码,但无法在 Excel 的两个单独列中下载数据(评论及其位置)。我是 R 新手。
我用过的代码:
thepage = readLines('http://www.subaruoutback.org/forums/104-gen-4-2010-
2014/22586-440-watt-9-speaker-harman-kardon-premium-audio-system-sound-
quality.html')
#Location
grep('Location',thepage)
thepage[2738]
mypattern = '\t\t\t\t<div>Location: ([^<]*)</div>'
datalines = grep(mypattern,thepage[2738:length(thepage)],value=TRUE)
datalines
getexpr = function(s,g)substring(s,g,g+attr(g,'match.length')-1)
gg = gregexpr(mypattern,datalines)
matches = mapply(getexpr,datalines,gg)
result = gsub(mypattern,'\\1',matches)
result
names(result) = NULL
result[1:10]
class(result)
#Review data
library(XML)
library(httr)
raw2 <- htmlTreeParse(thepage, useInternalNodes = TRUE)
data <- pathApply(raw2,"//div[startswith(@id,'post_message')]",xmlValue)
data <- unlist(data)
data
class(data)
df=data.frame(result,data)
write.csv(df,"D:/Important files/R Practice/texts/output9.csv")
My Expected output:![My expected output format][1]
【问题讨论】:
-
究竟是什么不起作用?
df=data.frame(result,data = gsub("[\n\t\r]", "", data)); write.csv2(df,tf <- tempfile(fileext = ".csv")); shell.exec(tf)在这里看起来不错。 (我剥离了控制字符并使用了 write.csv2,它使用逗号作为小数点,使用分号作为分隔符) -
嘿..感谢它为我工作。我们可以把我们的输出格式如下吗?一列用于结果(位置),另一列用于相应数据(评论)。数据(评论)应该在同一列的一个单元格中。
-
@RonakKumar - 相应地更新您的问题。你提供的链接也被我破坏了。
-
请使用此链接:“subaruoutback.org/forums/104-gen-4-2010-2014/…”或我的问题中提供的链接。
-
@lukeA - 使用您的代码后,我得到了输出。但我想要数据(评论)输出让我们在一列中说一个人。一个人的评论被分成不同的列。