5

以前の質問で、R の twitteR パッケージを使用して、Haaretz の Twitter フィード (@haaretzcom) から多数の Twitter フォロワー (およびその場所、作成日、フォロワー数など) をダウンロードすることについて尋ねました (回避率を参照)。 R の twitteR パッケージを使用してユーザー情報の大きなリストを抽出するための制限)。Twitter フィードには 90,000 人を超えるフォロワーがいます。以下のコードを使用して、フォロワーの完全なリストを問題なくダウンロードできました。

   require(twitteR)
   require(ROAuth)
   #Loading the Twitter OAuthorization
   load("~/Dropbox/Twitter/my_oauth")

   #Confirming the OAuth
   registerTwitterOAuth(my_oauth)

  # opening list to download
  haaretz_followers<-getUser("haaretzcom")$getFollowerIDs(retryOnRateLimit=9999999)

  for (follower in haaretz_followers){
   Sys.sleep(5)
   haaretz_followers_info<-lookupUsers(haaretz_followers)

   haaretz_followers_full<-twListToDF(haaretz_followers_info)

   #Export data to csv
  write.table(haaretz_followers_full, file = "haaretz_twitter_followers.csv",  sep=",")
 }

このコードは、多くのユーザーを抽出する際に機能します。ただし、特定のユーザーにヒットするたびに、次のエラーが発生します。

Error in twFromJSON(out) :
RMate stopped at line 51
Error: Malformed response from server, was not JSON.
RMate stopped at line 51
The most likely cause of this error is Twitter returning a character which
can't be properly parsed by R. Generally the only remedy is to wait long
enough for the offending character to disappear from searches (e.g. if
using searchTwitter()).
Calls: twListToDF ... lookupUsers -> lapply -> FUN -> <Anonymous> -> twFromJSON
Execution halted

twitteR パッケージの後に RJSONIO パッケージをロードしても、この問題が発生します。いくつかの調査を行うと、twitteR および RJSONIO パッケージには、非 UTF-8 または ASCII 文字 (アラビア語など) の解析に問題があるようです。http://lists.hexdump.org/pipermail/twitter-users-hexdump.org/ 2013 年 5 月/000335.html . 私が持っているコードで非 UTF-8 または ASCII を単に無視し、それでもすべてのフォロワー情報を抽出する方法はありますか? どんな助けでも大歓迎です。

4

1 に答える 1