我有一个工作脚本(Windows 32位),通过read.csv成功读取受密码保护的网站上的txt文件。下面是一段非常简单的代码:
fname <- "http://www.frontierweather.com/degreedays/StatePopulationWeightedWeatherData_Since2010.txt"
dd2 <- read.csv(fname, sep=",", header=T)
然后我得到了一台新计算机(Windows 64位),并且read.csv似乎没有loger似乎能够超越网站身份验证。它不是读入数据,而是在一个似乎与网站身份验证相关的乱码数据框中读取:
> head(dd2)
X..DOCTYPE.html.PUBLIC....W3C..DTD.XHTML.1.0.Transitional..EN
1 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
2 <html xmlns=http://www.w3.org/1999/xhtml>
3 <head>
4 <title>Please login</title>
5 <link rel=stylesheet type=text/css
6 href=http://www.frontierweather.com/amember/templates/css/reset.css />
不可思议的是,我尝试了几件事来试图让它发挥作用:
非常感谢任何协助或指示。
答案 0 :(得分:1)
我弄清楚了我的问题,因为我浪费了整整一天的时间来试图解决这个问题,所以我希望能够分享我的解决方案,所以希望它不会引起别人的同样惊愕,因为它引起了我的注意。
首先,据我所知,问题与R完全无关或从32位机器切换到64位机器。相反,它似乎都源于从Internet Explorer 7开始引入的Internet Explorer中的新设置。
在Internet Explorer的选项中,默认情况下启用(选中)“启用保护模式(需要重新启动Internet Explorer)”选项。 Internet Explorer允许您更改以下每个安全区域的设置:Internet,本地Intra Net,可信站点和受限制的站点。
将我的数据来源的URL添加到可信站点列表后,我通过取消选中该框来关闭启用保护模式。完成此更改并重新启动Internet Explorer后,read.csv(上面)工作正常。
在做了一些进一步的研究后,我发现了以下内容:
保护模式有助于防止恶意软件被利用 Internet Explorer 7中的漏洞,保护您的计算机免受攻击 黑客可以访问您系统的最常见方式。 - How To Disable Protected Mode in Internet Explorer 7
可能是启用了保护模式(我的新计算机附带的默认设置);它阻止R访问包含我的用户名和密码的cookie,这些cookie被送到R和/或返回到Internet Explorer来检索数据。