从受密码保护的网站将文本文件读入R.

时间:2013-03-11 15:56:37

标签: r internet-explorer dataframe

我有一个工作脚本(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 />

不可思议的是,我尝试了几件事来试图让它发挥作用:

  1. 从旧机器上传输过的cookie
  2. 打开网站,并在提示时允许窗口保存用户名和密码
  3. 带有“user:password @”
  4. 的带前缀的URL(在fname中)
  5. 在interent explorer中设置网站,其中数据存储为“可信站点”。
  6. 检查新计算机和旧计算机上的所有装置是否相同
  7. 验证旧计算机和新计算机是否运行Internet Explorer的相同版本(版本9)
  8. 非常感谢任何协助或指示。

1 个答案:

答案 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来检索数据。