O pacote R fouRplebsAPI permite aos pesquisadores consultar o banco de dados 4chan arquivado por 4plebs.org. Este banco de dados é o maior arquivo contínuo de postagens que desaparecem no imageboard 4chan. Com este pacote os pesquisadores podem utilizar as funcionalidades de busca detalhada oferecidas pelo 4plebs e recuperar dados estruturados da comunicação no 4chan.
O pacote é baseado na documentação da API 4plebs.
Se fouRplebsAPI for útil para sua pesquisa, cite como:
Bühling, K. (2022). fouRplebsAPI: pacote R para acessar postagens do 4chan através da API 4plebs.org (versão 0.9.0). https://doi.org/10.5281/zenodo.6637440
Você pode instalar o fourPlebsAPI do GitHub com:
# install.packages("devtools")
devtools :: install_github( " buehlk/fouRplebsAPI " )
Os fóruns do 4chan atualmente cobertos pelo 4plebs são:
Nome do quadro | Abreviação |
---|---|
Politicamente Incorreto | polaco |
Alta resolução | horas |
Jogos Tradicionais | tg |
Televisão e Cinema | TV |
Paranormal | x |
Merda que o 4chan diz | s4s |
Auto | ó |
Conselho | advérbio |
Viagem | trv |
Clarão | f |
Esportes | sp |
Minha pequena política | mlpol |
Mecha e Auto | mo |
Embora este pacote inclua várias funções que permitem aos pesquisadores consultar e inspecionar postagens específicas do 4chan (get_4chan_post) ou tópicos (get_4chan_thread), os pesquisadores que desejam coletar dados do arquivo 4plebs provavelmente estarão interessados em coletar uma quantidade maior de dados.
A primeira forma de coletar dados é coletando os threads mais recentes em um determinado fórum. Digamos que você esteja interessado nos 20 tópicos mais recentes do quadro “Conselhos” (excluindo os comentários que acompanham a postagem de abertura), uma forma de consultar os dados é:
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 ...
A descrição da saída pode ser encontrada nas documentações da função. Teoricamente, seria possível extrair vastas faixas do arquivo com esta função, mesmo que a API tenha um limite de taxa de API, o que retarda o processo de consulta.
Uma segunda maneira de coletar dados do 4chan com este pacote é a função de pesquisa. 4plebs permite uma pesquisa muito detalhada com muitos filtros de pesquisa. Mostrarei apenas exemplos simples de dados que podem ser coletados com fourplebsAPI.
O exemplo que mostro aqui é bastante alegre, porque gostaria de evitar os tópicos mais polêmicos pelos quais o 4chan, especialmente o conselho /pol/, é notório. Os investigadores, por exemplo os interessados na comunicação política de actores com ideologias controversas, terão facilidade em adaptar este exemplo. Mas este é sobre férias.
Vamos encontrar a comunicação no quadro “Viagens” que fala sobre Maiorca, Espanha.
Primeiro, para ter uma primeira impressão dos resultados da pesquisa, pode-se inspecionar um trecho das 25 postagens mais recentes contendo o termo de pesquisa “maiorca”.
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 ...
Observe que a função search_4chan_snippet() também imprime o número total de resultados da pesquisa e o tempo estimado para recuperá-los com search_4chan(). Essa estimativa é baseada no limite de API de cinco solicitações por minuto.
Usuários interessados apenas no número de resultados podem simplesmente recuperá-los alterando o parâmetro result_type para “results_num”. Agora pode-se comparar o número de posts mencionando Maiorca entre diferentes períodos de tempo. Por exemplo, pré-pandemia vs. pós-pandemia:
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
Parece que esta ilha tem sido mais mencionada porque as pessoas tendem a ficar em casa.
Pesquisadores interessados em coletar mais dados do que apenas um trecho das postagens podem usar a função search_4chan(). Continuando com o exemplo das publicações que mencionam Maiorca ao longo do tempo, poderíamos estar inclinados a perguntar se a imagem de Maiorca mudou durante a pandemia. Além de simplesmente obter todas as postagens que mencionam um termo de pesquisa, é possível, por exemplo, filtrar postagens contendo dados de imagem:
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"
A coluna media_link fornece os links de imagens para download das postagens recuperadas.
Se fouRplebsAPI for útil para sua pesquisa, cite como:
Bühling, K. (2022). fouRplebsAPI: pacote R para acessar postagens do 4chan através da API 4plebs.org (versão 0.9.0). https://doi.org/10.5281/zenodo.6637440