0

Rを使用してyammerデータをWebスクレイピングしたいのですが、そのためにはまずこのページにログインする必要があります(これは私が作成したアプリの認証です)。

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] Date: 2015-04-27 12:25 Status: 200 Content-Type: text/html; charset=utf-8 サイズ: 15.7 kB このページのコンテンツは、ログイン ページを開いたものの、認証されなかったことを示しています。

2.セレクターガジェット+rvestでお試し

この方法を使用してウィキペディアをスクレイピングしようとしましたが、セレクターガジェットが提供するhtmlタグを呼び出す前に認証が必要になるため、yammerに適用できませんでした。

3.RSeleniumを使ってみる

標準のブラウザとphantomjsを使用してこれを試しましたが、いくつかのエラーが発生しました

> startServer()

remDr <- remoteDriver$new()

remDr$open() [1] 「リモート サーバーに接続しています」 RCurl 呼び出しで未定義のエラーが発生しました。queryRD(paste0(serverURL, "/session"), "POST", qdata = toJSON(serverOpts)) のエラー:

> pJS <- phantom()

phantom() のエラー: PhantomJS バイナリが見つかりません。

4

2 に答える 2

2

また、R 内からパスワードで保護されたサイトへのアクセスを管理するのに非常に長い時間を費やしました。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 には、ログイン後のセッション情報が含まれている必要があります。

ブラジル

于 2015-11-30T13:03:14.813 に答える
0

これで何を達成しようとしていますか?データを収集するだけの場合は、いつでもデータ エクスポート API を使用して、分析の代わりにネットワーク データをダウンロードできます。これにはエンタープライズ ネットワークが必要です。

于 2015-05-08T21:21:46.723 に答える