我想使用R来废弃yammer数据,但为了做到这一点,首先必须登录到此页面(这是我创建的应用程序的身份验证)。
https://www.yammer.com/dialog/authenticate?client_id=iVGCK1tOhbZGS7zC8dPjg
登录此页面后,我能够获取yammer数据,但所有这些都是在标准yammer网址的浏览器中 (https://www.yammer.com/api/v1/messages/received.json)
我已经阅读了类似的问题并尝试了这些建议,但仍然无法解决这个问题。
我尝试过使用httr,RSelenium,rvest + Selector小工具。
这里的最终目标是做R中的所有事情(获取数据,清理,情绪分析...清洁和情绪分析部分已完成但截至目前获取数据部分是手动的,我想通过处理自动化来自R)
1.Trial使用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 内容类型:text / html;字符集= utf-8的 大小:15.7 kB 此页面的内容显示它已打开登录页面但未进行身份验证。
2.Trial使用选择器小工具+ rvest
我尝试使用此方法抓取维基百科,但无法将其应用于yammer,因为在调用selctor小工具提供的html标记之前需要进行身份验证。
3.Trial使用RSelenium
尝试使用标准浏览器和phantomjs但出现了一些错误
> startServer()
remDr&lt; - remoteDriver $ new()
remDr $ open()的 [1]&#34;连接到远程服务器&#34; RCurl调用中的未定义错误。 queryRD出错(paste0(serverURL,&#34; / session&#34;),&#34; POST&#34;,qdata = toJSON(serverOpts)):
> pJS <- phantom()
幻像()中出错:未找到PhantomJS二进制文件。
答案 0 :(得分:1)
我还花了很长时间来设法从内部访问受密码保护的网站。 最后,我设法通过将凭据作为html表单提交。 我快速浏览了Yammer上的登录页面,它似乎与我设法访问的情况类似。
这是我使用的代码。您需要根据您的上下文进行调整:首先在登录页面上启动会话,然后到达收集ID和密码的表单,最后提交表单。 我想在你的情况下,下面的代码可以工作:
session <- html_session("https://www.yammer.com/dialog/authenticate?client_id=iVGCK1tOhbZGS7zC8dPjg")
login_form <- session %>% html_nodes("form") %>%
.... %>% #Instructions that lead you to the login form, e.g. extract2(1)
html_form() %>%
set_values(`login` = YourId,`password` = YourPasswd)
Logged_in=session %>% submit_form(login_form))
登录后,logged_in应包含会话信息。
BR
答案 1 :(得分:0)
你想用这个来实现什么?如果您只是想收集数据,那么您始终可以使用数据导出API下载网络数据进行分析。这需要企业网络。