[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
请简略描述你所要做的事情,或是这个程式的目的
问题一
用httr、XML套件想要把批踢踢的文章们存成.txt档以利后续text mining
但是八卦板因为有“确认已满18岁”的网页而无法存出文章
问题二
关于RCurl的问题(详见以下)
问题一
library(XML)
library(httr)
start <- regexpr('www', line)[1]
end <- regexpr('html', line)[1]
if(start != -1 & end != -1){
url <- substr(line, start, end+3)
html <- content(GET(url), encoding="UTF8")
doc <- xpathSApply(html, "//div[@id='main-content']", xmlValue)
name <- strsplit(url, '/')[[1]][4]
write(doc, gsub('html', 'txt', name))
}
# 当 读入八卦板以外的批踢踢文章网址
line = "https://www.ptt.cc/bbs/StupidClown/M.1427811176.A.552.html"
工作路径中会出现一个新的txt档,其中存著这篇笨版文章的内容
# 当 读入八卦板网址
line = "https://www.ptt.cc/bbs/Gossiping/M.1427816656.A.450.html"
存下来的txt档里面却是空的。
研判应该是八卦板的十八岁限制网页造成
https://www.ptt.cc/bbs/Gossiping/M.1427816656.A.450.html
想请问版上高手如何跳过这个网页呢?
问题二
原程式码
url <- substr(line, start, end+3)
html <- content(GET(url), encoding="UTF8")
doc <- xpathSApply(html, "//div[@id='main-content']", xmlValue)
name <- strsplit(url, '/')[[1]][4]
write(doc, gsub('html', 'txt', name))
原本想用RCurl套件来做第二行
html <- htmlParse(getURL(url), encoding='UTF-8')
存出来的html却失败
> html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr>
<center>nginx</center>
</body>
</html>
但后来改成用httr套件的content()和GET()就可以了,却不明白为什么XD