Scielo.br
Ferramentas Scielo v2
Veja a documentação original em aqui e o repositório no GitHub aqui
No ano de 2020, desenvolvemos uma ferramenta para raspagem da base de artigos do Scielo.br. A ferramenta, escrita em Python, utilizava a biblioteca BeautifulSoup
para coletar os dados. Entretanto, em 2021 o repositório Scielo.br passou por uma reestruturação completa.
Foi necessário, consequentemente, a reconstrução da ferramenta para lidar com a nova versão do site. Agora, utilizamos o Selenium
para acessar e raspar os dados do repositório.
Com a ferramentas_scielo_v2
é possível realizar a raspagem por área do conhecimento ou por revista (ou uma lista de revistas). Também é possível optar pelo tipo de raspagem: apenas XML ou XML e PDFs.
Também disponibilizamos uma ferramenta para converter os XMLs para CSV, com o script scielo_xml_to_csv/run.py
.
Instalação
Pré-requisitos
Para executar a ferramenta é preciso clonar ou fazer download do repositório para sua máquina. Antes de executar os scripts, é preciso preparar seu computador, como mostramos abaixo.
A ferramentas desse projeto foram escritas em Python 3.8. Portanto, para executar o arquivo .py é preciso instalar o Python3 em seu computador.
Clique aqui para acessar um tutorial de instalação do Python no Windows, clique aqui para Linux e clique aqui para Mac.
Após a instalação do Python é preciso instalar as bibliotecas necessárias para a ferramenta ser executada. Para isso, basta executar o comando pip3 install -r requirements.txt
no terminal, a partir da pasta onde está o arquivo. Para saber mais sobre instalação de bibliotecas com pip, veja essa lição do Programming Historian.
- Acesse o diretório em que o arquivo
requirements.txt
está salvo:$ cd <caminho para a pasta>
- Instale as bibliotecas requeridas com o seguinte comando:
pip3 install -r requirements.txt
WebDriver e Navegador
Para que a ferramenta funcione, é necessário ter instalado o navegador Mozilla Firefox. Além disso, é necessário ter instalado o WebDriver do Mozilla Firefox, GeckoDriver.
Para acessar a versão mais recente do GeckoDriver visite o repositório do Mozilla no GitHub. É possível encontrar mais informações oficiais aqui.
Para inserir o webdriver no PATH de sistemas Unix e Windows, leia essa questão no StackOverflow.
Agora é possível executar a ferramenta direto do prompt de comando do Windows ou pelo terminal do Linux, ou utilizar as diversas IDE disponíveis.
Utilização
Na pasta da ferramenta existem dois arquivos python que permitem a execução de opções distintas de raspagem. O primeiro, scielo_v2.py
, permite a raspagem de todas as revistas de uma determinada área do conhecimento. O segundo, scielo_rev_v2.py
, permite a raspagem por revista ou lista de revistas específicas.
Raspagem por área de conhecimento
Esse script permite ao usuário selecionar qual assunto pretende raspar de acordo com a categorização estabelecida pela plataforma Scielo.br.
Para isso é preciso executar o seguinte comando, do interior da pasta onde o arquivo está localizado:
python3 scielo_v2.py
-=-Definição da área temática-=-
- Opções:
1- Ciências Agrárias
2- Ciências Biológicas
3- Ciências da Saúde
4- Ciências Exatas e da Terra
5- Ciências Humanas
6- Ciências Sociais Aplicadas
7- Engenharias
8- Linguística, Letras e Artes
Digite o número correspondente à área temática que deseja raspar:
- Realizar a raspagem de todos os arquivos XML de todas as edições de todas as revistas da área selecionada: opção
1
; - Realizar a raspagem de todos os arquivos XML e PDF de todas as edições de todas as revistas da área selecionada: opção
2
.
Devido ao volume de dados, contando dezenas de milhares de artigos, o download de todos os arquivos PDF demandará muito tempo e uso intenso de sua máquina.
Os arquivos XML possuem todos os metadados dos artigos, incluindo o texto completo e as referências bibliográficas.
Raspagem por revista ou por lista de revistas
Nesse script é possível raspar uma revista ou uma lista de revistas específicas através de seu nome.
Possui as mesmas características do scielo_v2.py
, porém a definição da(s) revista(s) a ser(em) raspada(s) é feita através da abreviação do nome da revista conforme URL da revista no site do Scielo.br.
Por exemplo, se vc pretende raspar os arquivos da revista Almanack, acesse a página inicial da revista no repositório e encontre a abreviação de seu título na URL.
https://www.scielo.br/j/alm/
Nesse caso, o abreviação do nome da revista é alm
. Esse termo deve ser informado para o programa.
-=- Definição da(s) revista(s) -=-
Digite a abreviação da revista que deseja raspar: alm
Deseja inserir outra? [S/N]
Atenção
Ambos os scripts criarão diretórios para armazenar os arquivos e dados.
scielo/{AAAA-MM-DD}/PDF/{nomeDaRevista}
no caso da raspagem de PDFs;scielo/{AAAA-MM-DD}/XML/{nomeDaRevista}
no caso da raspagem de XMls.
Entretanto, se a pasta com o nome de uma revista já existir no mesmo caminho que o programa está sendo executado, só serão baixados arquivos que ainda não existem.
Conversão de XML para CSV
Após o download dos arquivos XML é possível utilizar a ferramenta scielo_xml_to_csv
para converter todos os XML para um arquivo csv
.
Acesse a pasta scielo_xml_to_csv
e execute o arquivo run.py
.
Esses scripts têm como objetivos analisar, selecionar, organizar e salvar informações de um dataset de arquivos XML de todas as revistas previamente baixados em um arquivo CSV.
O run.py
acessa o diretório contendo as pastas de cada revista e analisa cada XML, inserindo os dados em um arquivo CSV salvo com o nome metadata_{revista}.csv
.
É preciso definir o caminho do diretório com o dataset. E a estrutura desse dataset deve conter diretórios de cada revista (ou edições) com seus arquivos XML a serem analisados.
As seguintes informações são inseridas no CSV:
- index,
- file_name: nome do arquivo,
- article_id: identificação do arquivo,
- article_category: categoria do arquivo,
- authors: lista de autores,
- contact_email: e-mail do/a autor/a principal
- authors affiliation: lista de filiações,
- article_title: título do artigo,
- journal_title: título do revista,
- journal_issn: ISSN da revista,
- journal_publisher: instituição da revista,
- pub_date: data da publicação,
- abstract: resumo,
- key_words: lista de palavras-chave,
- issue: edição,
- num: número,
- doi: DOI,
- full_text: texto completo do artigo,
- footnotes: notas de rodapé,
- refs: lista (contendo listas) das referências bibliográficas.
Em seguida, com a função df_final()
, todos os arquivos CSV são unidos em um único dataframe com Pandas
e salvos em um CSV chamado metadata_scielo_{yyyy-mm-dd_H-M-S}.csv
.
Elementos presentes nesse repositório foram retirados de Scielo_Journal_Metadata_Downoader, criado por johnsgomez
Download dos dados
Se preferir baixar a base dos CSV de Ciências Humanas sem usar o código clique aqui. Esse arquivo zipado é formado pelos arquivos CSV das 91 revistas categorizada como Ciências Humanas pelo Scielo.br previamente raspados usando a ferramenta scielo_scraper
em 22 de novembro de 2020. A execução do scielo_xml_to_csv
aconteceu em 04/04/2021 e gerou esse arquivo zipado com todos os 91 CSVs de cada revista mais o CSV final, com todos os 72.552 itens e possui 234.4 MB.
Como citar essa ferramenta?
É possível clicar em Cite this repository
na aba à direita da página inicial do repositório no GitHub para acessar a citação nos formatos APA e BibTex, ou ainda acessar o arquivo da citação em formato .cff
.
Abaixo a citação no formato BibTex:
@software{brasil_eric_2021_6336277,
author = {Brasil, Eric and
Nascimento, Leonardo and
Andrade, Gabriel},
title = {Ferramentas Scielo v2},
month = aug,
year = 2021,
note = {{Se você utilizar esse programa, por favor cite
como referenciado abaixo.}},
publisher = {Zenodo},
version = {2.1},
doi = {10.5281/zenodo.6336277},
url = {https://doi.org/10.5281/zenodo.6336277}
}
Licença
2021 Eric Brasil (IHL/UNILAB, LABHDUFBA), Gabriel Andrade (UFBA, LABHDUFBA), Leonardo Nascimento (UFBA, LABHDUFBA)