我是R的新手,我试图访问互联网上的一些信息,但我遇到了似乎没有关闭的连接问题.如果有人在这里给我一些建议,我将非常感激...
最初我想使用WebChem软件包,理论上可以提供我想要的所有内容,但是当网页中缺少某些输出数据时,WebChem不会从该页面返回任何数据.为了解决这个问题,我已经从包中获取了大部分代码,但稍微改了一下以满足我的需求.这工作得很好,关于第150个惯例,但现在,我虽然什么都没有改变,当我使用命令read_html,我得到的警告信息"关闭不使用的连接4(HTTP:......"虽然这只是一条警告消息,read_html在生成此警告后不返回任何内容.
我写了一个简化的代码,如下所示.这有同样的问题
完全关闭R(甚至重新启动我的电脑)似乎没有什么区别 - 第二次使用代码时会出现警告消息.我可以一次一个地运行查询,在循环之外没有问题,但是一旦我尝试使用循环,错误就会在第二次迭代时再次发生.我试图矢量化代码,并再次返回相同的错误消息.我尝试了showConnections(all = TRUE),但只有stdin,stdout,stderr的连接0-2.我试图找到关闭html连接的方法,但是我不能将url定义为con,而close(qurl)和close(ttt)也不起作用.(返回应用于类"字符"对象的'close'没有适用方法的错误,并且没有适用于类'c('xml_document','xml_node')的对象的'close'的适用方法",分别)
有没有人知道关闭这些连接的方法,这样他们就不会破坏我的日常工作?任何建议都会非常受欢迎.谢谢!
PS:我正在使用R版本3.3.0和RStudio版本0.99.902.
CasNrs <- c("630-08-0","463-49-0","194-59-2","86-74-8","148-79-8")
tit = character()
for (i in 1:length(CasNrs)){
CurrCasNr <- as.character(CasNrs[i])
baseurl <- 'http://chem.sis.nlm.nih.gov/chemidplus/rn/'
qurl <- paste0(baseurl, CurrCasNr, '?DT_START_ROW=0&DT_ROWS_PER_PAGE=50')
ttt <- try(read_html(qurl), silent = TRUE)
tit[i] <- xml_text(xml_find_all(ttt, "//head/title"))
}
Run Code Online (Sandbox Code Playgroud)