R 패키지 fouRplebsAPI를 사용하면 연구원은 4plebs.org에 보관된 4chan 데이터베이스를 쿼리할 수 있습니다. 이 데이터베이스는 이미지보드 4chan에서 계속 사라지는 게시물을 지속적으로 보관하는 최대 규모의 아카이브입니다. 이 패키지를 통해 연구원은 4plebs가 제공하는 세부 검색 기능을 사용하고 4chan에서 통신의 구조화된 데이터를 검색할 수 있습니다.
패키지는 4plebs API 문서를 기반으로 합니다.
fouRplebsAPI가 귀하의 연구에 도움이 된다면 다음과 같이 인용해 주세요.
부엘링, K.(2022). fouRplebsAPI: 4plebs.org API(버전 0.9.0)를 통해 4chan 게시물에 액세스하기 위한 R 패키지입니다. https://doi.org/10.5281/zenodo.6637440
다음을 사용하여 GitHub에서 fouRplebsAPI를 설치할 수 있습니다.
# install.packages("devtools")
devtools :: install_github( " buehlk/fouRplebsAPI " )
현재 4plebs가 다루는 4chan 보드는 다음과 같습니다.
보드.이름 | 약어 |
---|---|
정치적으로 올바르지 않음 | 폴 |
고해상도 | 시간 |
전통 게임 | tg |
텔레비전 및 영화 | TV |
초자연적 | 엑스 |
젠장 4chan이 말하길 | s4s |
자동 | 영형 |
조언 | 고급 |
여행하다 | trv |
플래시 | 에프 |
스포츠 | sp |
나의 작은 정치 | mlpol |
메카와 자동차 | 모 |
이 패키지에는 연구원이 특정 4chan 게시물(get_4chan_post) 또는 스레드(get_4chan_thread)를 쿼리하고 검사할 수 있는 여러 기능이 포함되어 있지만, 4plebs 아카이브에서 데이터를 수집하려는 연구원은 아마도 더 많은 양의 데이터를 수집하는 데 관심이 있을 것입니다.
데이터를 수집하는 첫 번째 방법은 해당 보드의 최신 스레드를 수집하는 것입니다. "Advice" 게시판의 최신 스레드 20개(첫 게시물에 수반되는 댓글 제외)에 관심이 있다고 가정해 보겠습니다. 데이터를 쿼리하는 한 가지 방법은 다음과 같습니다.
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 데이터를 수집하는 두 번째 방법은 검색 기능입니다. 4plebs는 다양한 검색 필터를 통해 매우 상세한 검색이 가능합니다. fouRplebsAPI로 수집할 수 있는 데이터의 간단한 예만 보여드리겠습니다.
내가 여기서 보여주는 예는 다소 유쾌한데, 왜냐하면 나는 4chan, 특히 /pol/ 보드가 악명 높은 논란의 여지가 있는 주제를 피하고 싶기 때문입니다. 예를 들어 논쟁의 여지가 있는 이념을 지닌 행위자들의 정치적 의사소통에 관심이 있는 연구자들은 이 예를 쉽게 적용할 수 있을 것입니다. 하지만 이것은 휴가에 관한 것입니다.
스페인 마요르카를 다룬 '여행' 게시판에서 그 내용을 찾아보자.
먼저, 검색 결과에 대한 첫인상을 얻으려면 검색어 "mallorca"가 포함된 가장 최근 게시물 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()을 사용하여 검색하는 데 걸리는 예상 시간도 인쇄합니다. 이 추정치는 분당 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(버전 0.9.0)를 통해 4chan 게시물에 액세스하기 위한 R 패키지입니다. https://doi.org/10.5281/zenodo.6637440