2011-05-23 27 views
8

ウィキペディア(おそらくMediawiki APIを使用している)にクエリを実行して、そのようなクエリに関連する利用可能な記事のリストを取得したり、テキストマイニングのために選択した記事をインポートすることができるパッケージはありますか?RからWikipediaにアクセスするには?

+0

次のような便利な点があります。http://www.ragtag.info/2011/feb/10/processing-every-wikipedia-article/ – James

答えて

5

情報を取得するためにRCurlパッケージを使用し、レスポンスを解析するためにXMLまたはRJSONIOパッケージを使用してください。

プロキシを使用している場合は、オプションを設定します。

opts <- list(
    proxy = "136.233.91.120", 
    proxyusername = "mydomain\\myusername", 
    proxypassword = 'whatever', 
    proxyport = 8080 
) 

the APIにアクセスするためにgetForm機能を使用してください。

search_example <- getForm(
    "http://en.wikipedia.org/w/api.php", 
    action = "opensearch", 
    search = "Te", 
    format = "json", 
    .opts = opts 
) 

結果を解析します。寄付の詳細とユーザーを取得し、ここで

ls("package:WikipediR") 
[1] "wiki_catpages"  "wiki_con"   "wiki_diff"   "wiki_page"   
[5] "wiki_pagecats"  "wiki_recentchanges" "wiki_revision"  "wiki_timestamp"  
[9] "wiki_usercontribs" "wiki_userinfo" 

それが使用されている:

fromJSON(rawToChar(search_example)) 
+0

これはいくつかの検索語には問題がありますが、私がやっているネットワークの問題です。 'search'パラメータでサンプルコードを異なる文字列でチェックするボランティアが必要です。 –

9

それは、これらの機能が含まれてWikipediR

library(devtools) 
install_github("Ironholds/WikipediR") 
library(WikipediR) 

R 'でMediaWikiのAPIラッパー' があります多数のユーザーの詳細:

library(RCurl) 
library(XML) 

# scrape page to get usernames of users with highest numbers of edits 
top_editors_page <- "http://en.wikipedia.org/wiki/Wikipedia:List_of_Wikipedians_by_number_of_edits" 
top_editors_table <- readHTMLTable(top_editors_page) 
very_top_editors <- as.character(top_editors_table[[3]][1:5,]$User) 

# setup connection to wikimedia project 
con <- wiki_con("en", project = c("wikipedia")) 

# connect to API and get last 50 edits per user 
user_data <- lapply(very_top_editors, function(i) wiki_usercontribs(con, i)) 
# and get information about the users (registration date, gender, editcount, etc) 
user_info <- lapply(very_top_editors, function(i) wiki_userinfo(con, i)) 
関連する問題