其实是最近的一个作业看到网上有关于R和微博的就试了一下,但是遇到了很多问题。
写在这里算是一个记录吧。
使用R装了Rweibo和Rwordseg。只是利用Rweibo搜索的话可以不进行授权。
首先是在微博中搜索关键词——
#关键词搜索
require(Rweibo)
res <- web.search.content("美国队长", page = 10, sleepmean = 15,sleepsd = 5)$Weibo
得到的结果如下:
> res
[1] "美国队长也是10元?真只要10元明天就来看。"
[2] "4月11日排片(不完全统计)尽管周五影市大量新片涌入,#美国队长2#还是凭借今日来的良好表现,守住了四分之一以上的排映空间,继续稳坐单日排映冠军,而其余老片则因表现乏力,排映大为缩减;在一众新片里,#里约大冒险2#以19.88%拔得头筹,作为2011年春季黑马动画续集,本片内地票房前景被普遍看好"
[3] "美国队长和中国队长理想队长和现实队长"
[4] "#美国队长2#全程槽点!!!要去电影院看建议越后排越后好,在前面看吐我了。晕得后面摘眼镜!" .................
[113] "美国队长很威武"
#去除url
resx =gsub(pattern="http:[a-zA-Z\\/\\.0-9]+","",res)
去除重复的微博内容##########考虑了一下是不是和我读入的文本的格式有关系。。。。
resx<-resx[!duplicated(res[,"MID"]),]
Error in duplicated(res[, "MID"]) :
error in evaluating the argument 'x' in selecting a method for function 'duplicated': Error in res[, "MID"] : incorrect number of dimensions
不太明白res后面的MID什么意思去掉之后可以正确运行,
resxx <- resx[!duplicated(resx)]
减少了一部分的微博数量
> length(res)
[1] 200
>
> length(resxx)
[1] 176
>
输出已获得数据
write.table(resxx,file="resxxTestOutput.csv",sep=",",row.names=F)
直接运行,结果变成了乱码。。。。现在在结尾加上了fileEncoding还是没有解决
Encoding(resxx) <- "UTF-8"
write.table(resxx,file="resxxTestOutput.csv",sep=",",row.names=F,fileEncoding="UTF-8"))
Encoding完全不生效。。。干脆直接抛弃中文好了。。。反正教授也看不懂
准备根据这个帖子试试twitter好了,英文没有那么多编码问题 —— http://cos.name/cn/topic/150580
虽然后面看起来很精彩但是最关键是没有办法获取授权。。。Wildfire的账户谁知道怎么样可以获取么?微博很轻松的就得到了,但是twitter怎么都不行。。。。
先到这里。