0

我有一个工作脚本(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 似乎没有记录器能够超越网站身份验证。它不是读取数据,而是读取似乎与网站身份验证相关的乱码数据框:

> 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. 打开网站并在提示时允许 Windows 保存用户名和密码
  3. 带有“user:password@”前缀的 URL(在 fname 中)
  4. 在 Internet Explorer 设置的网站中,数据存储为“受信任的站点”。
  5. 检查新电脑和旧电脑上的所有ackages是否相同
  6. 已验证新旧机器都运行相同版本(版本 9)的 Internet Explorer

任何帮助或指导将不胜感激。

4

1 回答 1

1

我发现了我的问题,因为我浪费了一整天的时间来解决这个问题,所以我想分享我的解决方案,希望它不会像它给我带来的那样给其他人带来同样的恐慌。

首先,据我所知,这个问题与 R 或从 32 位机器切换到 64 位机器完全无关。相反,这一切似乎都源于 Internet Explorer 中从 Internet Explorer 7 开始引入的新设置。

在 Internet Explorer 的选项中,“启用保护模式(需要重新启动 Internet Explorer)”选项默认打开(选中)。Internet Explorer 允许您更改以下每个安全区域的设置:Internet、本地 Intra Net、受信任站点和受限制站点。

将我的数据来源的 URL 添加到受信任的站点列表后,我通过取消选中该框关闭了启用保护模式。进行此更改并重新启动 Internet Explorer 后,read.csv(上图)运行良好。

在做了一些进一步的研究后,我发现了以下内容:

保护模式有助于防止恶意软件利用 Internet Explorer 7 中的漏洞,保护您的计算机免受黑客最常见的方式访问您的系统。-如何在 Internet Explorer 7 中禁用保护模式

大概是通过启用保护模式(我的新计算机附带的默认设置);它阻止了 R 访问包含我的用户名和密码的 cookie,这些 cookie 被馈送到 R 和/或返回到 Internet Explorer 以检索数据。

于 2013-03-11T20:14:05.107 回答