R パッケージ fouRplebsAPI を使用すると、研究者は 4plebs.org によってアーカイブされた 4chan データベースにクエリを実行できます。このデータベースは、画像掲示板 4chan 上で消え続ける投稿の最大の継続的アーカイブです。このパッケージを使用すると、研究者は 4plebs が提供する詳細な検索機能を使用し、4chan 上のコミュニケーションの構造化データを取得できます。
パッケージは 4plebs API ドキュメントに基づいています。
fouRplebsAPI があなたの研究に役立つ場合は、次のように引用してください。
ビューリング、K. (2022)。 fouRplebsAPI: 4plebs.org API 経由で 4chan 投稿にアクセスするための R パッケージ (バージョン 0.9.0)。 https://doi.org/10.5281/zenodo.6637440
次のコマンドを使用して、GitHub から fouRplebsAPI をインストールできます。
# install.packages("devtools")
devtools :: install_github( " buehlk/fouRplebsAPI " )
現在 4plebs でカバーされている 4chan ボードは次のとおりです。
ボード名 | 略語 |
---|---|
政治的に正しくない | ポール |
高解像度 | 時 |
伝統的なゲーム | tg |
テレビと映画 | テレビ |
超常現象 | × |
クソ4chanの言うこと | s4s |
自動 | ああ |
アドバイス | 広告 |
旅行 | trv |
フラッシュ | f |
スポーツ | sp |
私の小さな政治 | mlpol |
メカ&オート | も |
このパッケージには、研究者が特定の 4chan 投稿 (get_4chan_post) またはスレッド (get_4chan_thread) をクエリおよび検査できるようにするいくつかの関数が含まれていますが、4plebs アーカイブからデータを収集したい研究者は、おそらく大量のデータを収集することに興味があるでしょう。
データを収集する最初の方法は、特定のボードの最新のスレッドを収集することです。 「アドバイス」掲示板の最新 20 件のスレッド (最初の投稿に付随するコメントを除く) に興味があるとします。データをクエリする 1 つの方法は次のとおりです。
library( fouRplebsAPI )
recentAdv <- get_4chan_board_range( board = " adv " , page_start = 1 , page_stop = 2 , latest_comments = FALSE )
str( recentAdv , vec.len = 1 , nchar.max = 60 )
# > 'data.frame': 20 obs. of 15 variables:
# > $ thread_id : chr "26681983" ...
# > $ doc_id : chr "12984655" ...
# > $ num : chr "26681983" ...
# > $ subnum : chr "0" ...
# > $ op : num 1 1 ...
# > $ timestamp : int 1655111247 1655110365 ...
# > $ fourchan_date : chr "6/13/22(Mon)5:07" ...
# > $ name : chr "Anonymous" ...
# > $ title : logi NA ...
# > $ referencing_comment: logi NA ...
# > $ comments : chr "I have a very good friend. Maybe one of my "| __truncated__ ...
# > $ poster_country : logi NA ...
# > $ nreplies : logi NA ...
# > $ formatted : logi FALSE ...
# > $ media_link : logi NA ...
出力の説明は関数のドキュメントに記載されています。理論的には、API には API レート制限があり、クエリ プロセスが遅くなる場合でも、この関数を使用してアーカイブの広範囲をスクレイピングすることが可能です。
このパッケージで 4chan データを収集する2 番目の方法は、検索機能です。 4plebs では、多くの検索フィルターを使用して非常に詳細な検索が可能です。 fouRplebsAPI で収集できるデータの簡単な例のみを示します。
ここで示す例はかなり陽気なものです。4chan、特に /pol/ 板が悪名高い、物議を醸すようなトピックは避けたいからです。研究者、たとえば、論争の多いイデオロギーを持つ当事者の政治的コミュニケーションに興味のある研究者は、この例を適応するのが簡単であることがわかります。しかし、これは休暇に関するものです。
スペインのマヨルカ島について議論する「旅行」掲示板でコミュニケーションを見つけてみましょう。
まず、検索結果の第一印象を得るために、検索語「マヨルカ」を含む最新の投稿 25 件のスニペットを調べることができます。
mallorca_snippet <- search_4chan_snippet( boards = " trv " , start_date = " 2021-01-01 " , end_date = " 2022-12-31 " , text = " mallorca " )
# > The 1 - 25 oldest posts of the 78 total search results are shown.
# > Scraping all 78 results would take ~ 1.33 minutes.
str( mallorca_snippet , vec.len = 1 , nchar.max = 60 )
# > 'data.frame': 25 obs. of 15 variables:
# > $ thread_id : chr "1938850" ...
# > $ doc_id : chr "1113628" ...
# > $ num : chr "1938924" ...
# > $ subnum : chr "0" ...
# > $ op : num 0 1 ...
# > $ timestamp : int 1610611412 1611403974 ...
# > $ fourchan_date : chr "1/14/21(Thu)3:03" ...
# > $ name : chr "Anonymous" ...
# > $ title : chr NA ...
# > $ referencing_comment: chr "1938909n" ...
# > $ comments : chr ">got murdered and/or raped in shitholes ove"| __truncated__ ...
# > $ poster_country : logi NA ...
# > $ nreplies : int NA 13 ...
# > $ formatted : logi FALSE ...
# > $ media_link : chr NA ...
関数 search_4chan_snippet() は、検索結果の総数と、search_4chan() で検索結果を取得するのにかかる推定時間も出力することに注意してください。この見積もりは、1 分あたり 5 リクエストの API 制限に基づいています。
結果の数のみに興味があるユーザーは、パラメータ result_type を「results_num」に変更するだけで結果を取得できます。これで、異なる期間の間でマヨルカ島に言及した投稿の数を比較できるようになりました。たとえば、パンデミック前とパンデミック後では次のようになります。
mallorca_pre <- search_4chan_snippet( boards = " trv " , start_date = " 2018-01-01 " , end_date = " 2019-12-31 " , text = " mallorca " , result_type = " results_num " )
mallorca_post <- search_4chan_snippet( boards = " trv " , start_date = " 2020-01-01 " , end_date = " 2021-12-31 " , text = " mallorca " , result_type = " results_num " )
data.frame ( " Years " = c( " 2018 & 2019 " , " 2020 & 2021 " ),
" Total results " = c( mallorca_pre [ " total_found " ], mallorca_post [ " total_found " ])
)
# > Years Total.results
# > 1 2018 & 2019 86
# > 2 2020 & 2021 99
家にこもりがちになった今、この島の話題が増えているようです。
投稿の断片だけではなく、より多くのデータを収集することに興味のある研究者は、関数 search_4chan() を使用できます。時を経てマヨルカ島に言及した投稿の例に留まると、パンデミックの間にマヨルカ島のイメージが変わったのかどうか疑問に思う人もいるかもしれない。検索語に言及しているすべての投稿を単に取得するだけでなく、たとえば、画像データを含む投稿をフィルタリングすることもできます。
mallorca_pre_pics <- search_4chan( boards = " trv " , start_date = " 2018-01-01 " , end_date = " 2019-12-31 " , text = " mallorca " , show_only = " image " )
# > [1] "Approximate time: 0.33 minutes."
mallorca_post_pics <- search_4chan_snippet( boards = " trv " , start_date = " 2018-01-01 " , end_date = " 2019-12-31 " , text = " mallorca " , show_only = " image " )
# > The 1 - 16 oldest posts of the 16 total search results are shown.
# > Scraping all 16 results would take ~ 0.33 minutes.
head( mallorca_post_pics $ media_link )
# > [1] "http://i.4pcdn.org/trv/1521713616876.jpg"
# > [2] "http://i.4pcdn.org/trv/1525249686528.jpg"
# > [3] "http://i.4pcdn.org/trv/1527534752103.jpg"
# > [4] "http://i.4pcdn.org/trv/1527865867839.jpg"
# > [5] "http://i.4pcdn.org/trv/1533082869505.jpg"
# > [6] "http://i.4pcdn.org/trv/1547062117808.jpg"
media_link 列には、取得した投稿のダウンロード可能な画像リンクが表示されます。
fouRplebsAPI があなたの研究に役立つ場合は、次のように引用してください。
ビューリング、K. (2022)。 fouRplebsAPI: 4plebs.org API 経由で 4chan 投稿にアクセスするための R パッケージ (バージョン 0.9.0)。 https://doi.org/10.5281/zenodo.6637440