【发布时间】:2015-07-01 07:47:05
【问题描述】:
我想使用 R 抓取 yammer 数据,但首先我必须登录到此页面(这是我创建的应用程序的身份验证)。
https://www.yammer.com/dialog/authenticate?client_id=iVGCK1tOhbZGS7zC8dPjg
一旦我登录到此页面,我就能够获取 yammer 数据,但所有这些都通过标准 yammer url 在浏览器中 (https://www.yammer.com/api/v1/messages/received.json)
我已经阅读了类似的问题并尝试了建议,但仍然无法解决这个问题。
我尝试过使用 httr、RSelenium、rvest+Selector 小工具。
这里的最终目标是在 R 中做所有事情(获取数据、清理、情感分析......清理和情感分析部分已经完成,但目前获取数据部分是手动的,我想通过处理来自动化它它来自 R)
1.使用httr试用:
usinghttr<- GET("https://www.yammer.com/dialog/authenticate?client_id=iVGCK1tOhbZGS7zC8dPjg",
authenticate("Username", "Password"))
相应的结果:响应 [https://www.yammer.com/dialog/authenticate?client_id=iVGCK1tOhbZGS7zC8dPjg] 日期:2015-04-27 12:25 状态:200 内容类型:文本/html;字符集=utf-8 大小:15.7 KB 该页面内容显示已打开登录页面但未验证。
2.Trial using selector gadget + rvest
我尝试使用此方法抓取维基百科,但无法将其应用于 yammer,因为在调用 selctor 小工具提供的 html 标记之前需要进行身份验证。
3.使用RSelenium试用
使用标准浏览器和 phantomjs 进行了尝试,但出现了一些错误
> startServer()
remDr
remDr$open() [1]“连接到远程服务器” RCurl 调用中的未定义错误。 queryRD(paste0(serverURL, "/session"), "POST", qdata = toJSON(serverOpts)) 出错:
> pJS <- phantom()
phantom() 中的错误:找不到 PhantomJS 二进制文件。
【问题讨论】:
-
R 在这方面真的不是很好,你最终会跳过一些痛苦的箍。对于 Python 或 C# 或其他更常见的自动化语言,所有这些可能都已解决。您应该考虑使用 Python 创建数据文件,并让 R 读取它们。
-
thx Mike,我看到 python 中有一个名为 yampy 的包专门用于 yammer,但现在我想知道我是否可以使用 R 获得一个快速而肮脏的解决方案,完全同意你认为 python 会提供更强大的解决方案(python 在我的“下一步要学习”列表中)
-
Python 并不难。语法有点奇怪(如果你在同一个文件中混合制表符和空格,上帝会帮助你),但 Python 可能是最容易学习和最通用的语言之一。值得学习。
-
介意我把这个建议写成答案:)
-
您说您尝试了“httr,RSelenium,rvest+Selector gadget”,但您没有显示您尝试过的内容。
标签: r yammer httr rvest rselenium