0

我正在尝试使用 R 编程的病毒 Heat API 找到“我不是在开玩笑”(例如)的情绪。我在 RCurl 包中使用了 getURL,如下所示:

getURL(" https://www.viralheat.com/api/sentiment/review.json?text=i%20am%20happy&api_key= ", ssl.verifypeer=FALSE)

这在 Google Chrome 中运行良好。但在 IE 中,它被重定向到“ https://www.viralheat.com/browsers ”,因为 ViralHeat API 无法支持 IE Ver<9。

我将 R_BROWSER env 选项更改为 Google Chrome(这是我的默认浏览器)。但是 getURL 仍然使用 IE,因为在执行上述 getURL 命令时仍然会重定向到浏览器页面。我将 IE 版本升级到 11。但看起来 virusheatAPI 在 IE 上根本不起作用,因为它仍然被重定向到浏览器页面。

有人遇到过这个问题吗?

4

1 回答 1

0

RCurl 发出的请求不使用您的浏览器。他们应该使用 RCurl 自己的库来发出 HTTP 请求。

网站很可能会检查请求的用户代理字符串,以查看它是一个有效的浏览器。默认情况下,RCurl 似乎不像您的浏览器那样指定用户代理字符串。如果您想模拟 Chrome,请访问http://www.whatsmyuseragent.com/以查看您当前的用户代理字符串是什么。将该值复制到 R 中的变量中,然后运行

ua <- "<your full user agent here>"
getURL("https://www.viralheat.com/api/sentiment/review.json?text=i%20am%20happy&api_key=", 
    ssl.verifypeer=FALSE, .opts=list(useragent=ua))

这应该避免浏览器嗅探步骤,至少可以让您访问 API。

于 2014-06-25T21:39:21.850 回答