以前の質問で、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 を単に無視し、それでもすべてのフォロワー情報を抽出する方法はありますか? どんな助けでも大歓迎です。