0

我正在收集有关不同大学的数据,并且在执行以下代码后我对跟随错误有疑问。问题是使用 htmlParse()

代码:

url1 <-“http://nces.ed.gov/collegenavigator/?id=165015”

网页1<- 获取URL(url1)

doc1 <- htmlParse(webpage1)

输出:

htmlParse(webpage1) 中的错误:文件

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 过渡//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

html xmlns="http://www.w3.org/1999/xhtml" head id="ctl00_hd"meta http-equiv="Content-type" content="text/html;charset=UTF-8" /title

    College Navigator - National Center for Education Statistics

/titlelink href="css/md0.css" type="text/css" rel="stylesheet" meta name="keywords" content="大学导航器,大学搜索,中学后教育,中学后统计,NCES,IPEDS,大学定位器"/meta meta name="description" content="College Navigator 是一款免费的消费者信息工具,旨在帮助学生、家长、高中辅导员和其他人获取有关美国 7,000 多个高等教育机构的信息 - 例如提供的课程、保留率和毕业率、价格、可用援助、授予的学位、校园安全和认证。"meta>meta name="robots" content="index,nofollow"/metalink

在使用这个包之前,我有网页抓取页面,我从来没有遇到过问题。name="robots" 和它有什么关系吗?任何帮助将不胜感激。

4

1 回答 1

1

http://validator.w3.org/check?verbose=1&uri=http%3A%2F%2Fnces.ed.gov%2Fcollegenavigator%2F%3Fid%3D165015 表示网页格式错误。您的浏览器可以对此进行补偿,但您的 R 包有问题。

如果您使用的是 windows,您可以让 IE 浏览器为您修复它,如下所示:

library(rcom)
library(XML)
ie = comCreateObject('InternetExplorer.Application')
ie[["visible"]]=T # true for debugging
comInvoke(ie,"Navigate2","http://nces.ed.gov/collegenavigator/?id=165015")
while(comGetProperty(ie,"busy")||comGetProperty(ie,"ReadyState")<4){
 Sys.sleep(1)
 print(comGetProperty(ie,"ReadyState"))
}
myDoc<-comGetProperty(ie,"Document")
webpage1<-myDoc$getElementsByTagName('html')[[0]][['innerHTML']]
ie$Quit()
doc1 <- htmlParse(webpage1)
于 2012-06-08T22:25:40.380 回答