El paquete R fouRplebsAPI permite a los investigadores consultar la base de datos 4chan archivada por 4plebs.org. Esta base de datos es el archivo continuo más grande de las publicaciones que desaparecen constantemente en el tablero de imágenes de 4chan. Con este paquete, los investigadores pueden utilizar las funciones de búsqueda detallada que ofrece 4plebs y recuperar datos estructurados de la comunicación en 4chan.
El paquete se basa en la documentación API de 4plebs.
Si fourRplebsAPI es útil para su investigación, cítelo como:
Buehling, K. (2022). fouRplebsAPI: paquete R para acceder a publicaciones de 4chan a través de la API de 4plebs.org (Versión 0.9.0). https://doi.org/10.5281/zenodo.6637440
Puede instalar fouRplebsAPI desde GitHub con:
# install.packages("devtools")
devtools :: install_github( " buehlk/fouRplebsAPI " )
Los foros de 4chan cubiertos actualmente por 4plebs son:
nombre.tablero | Abreviatura |
---|---|
Políticamente incorrecto | pol |
Resolución alta | hora |
Juegos Tradicionales | tg |
Televisión y cine | televisor |
Paranormal | incógnita |
Mierda 4chan dice | s4s |
Auto | oh |
Consejo | adverbio |
Viajar | trv |
Destello | F |
Deportes | sp |
Mi pequeña política | mlpol |
Mecha y automóvil | mes |
Si bien este paquete incluye varias funciones que permiten a los investigadores consultar e inspeccionar publicaciones de 4chan (get_4chan_post) o hilos (get_4chan_thread) específicos, los investigadores que deseen recopilar datos del archivo de 4plebs probablemente estarán interesados en recopilar una mayor cantidad de datos.
La primera forma de recopilar datos es recopilando los hilos más recientes en un tablero determinado. Supongamos que está interesado en los 20 hilos más recientes del tablero de "Consejos" (excluyendo los comentarios que acompañan a la publicación inicial), una forma de consultar los datos es:
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 ...
La descripción de la salida se puede encontrar en la documentación de la función. En teoría, sería posible extraer grandes cantidades del archivo con esta función, aunque la API tiene un límite de velocidad de API, lo que ralentiza el proceso de consulta.
Una segunda forma de recopilar datos de 4chan con este paquete es la función de búsqueda. 4plebs permite una búsqueda muy detallada con muchos filtros de búsqueda. Mostraré sólo ejemplos simples de los datos que se pueden recopilar con fourRplebsAPI.
El ejemplo que muestro aquí es bastante alegre, porque me gustaría evitar los temas más controvertidos por los que 4chan, especialmente el foro /pol/ es famoso. A los investigadores, por ejemplo a los interesados en la comunicación política de actores con ideologías conflictivas, les resultará fácil adaptar este ejemplo. Pero éste se trata de vacaciones.
Busquemos la comunicación en el foro “Viajes” que trata sobre Mallorca, España.
Primero, para tener una primera impresión de los resultados de la búsqueda, se puede inspeccionar un fragmento de las 25 publicaciones más recientes que contengan el término de búsqueda “mallorca”.
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 ...
Tenga en cuenta que la función search_4chan_snippet() también imprime el número total de resultados de búsqueda y el tiempo estimado para recuperarlos con search_4chan(). Esta estimación se basa en un límite API de 5 solicitudes por minuto.
Los usuarios que solo estén interesados en la cantidad de resultados pueden recuperarlos cambiando el parámetro tipo_resultado a "num_resultados". Ahora se puede comparar el número de publicaciones que mencionan Mallorca entre diferentes períodos de tiempo. Por ejemplo, antes de la pandemia y después de la 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 isla ha sido mencionada más porque la gente tendía a quedarse en casa.
Los investigadores interesados en recopilar más datos que solo un fragmento de las publicaciones pueden utilizar la función search_4chan(). Siguiendo con el ejemplo de las publicaciones que mencionan Mallorca a lo largo del tiempo, uno podría preguntarse si la imagen de Mallorca ha cambiado durante la pandemia. Además de simplemente obtener todas las publicaciones que mencionan un término de búsqueda, es posible, por ejemplo, filtrar las publicaciones que contienen datos de imágenes:
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"
La columna media_link proporciona los enlaces de imágenes descargables de las publicaciones recuperadas.
Si fourRplebsAPI es útil para su investigación, cítelo como:
Buehling, K. (2022). fouRplebsAPI: paquete R para acceder a publicaciones de 4chan a través de la API de 4plebs.org (Versión 0.9.0). https://doi.org/10.5281/zenodo.6637440