{"id":48515880,"url":"https://github.com/ericbrasiln/ferramentas_scielo_v2","last_synced_at":"2026-04-07T19:02:36.537Z","repository":{"id":43325388,"uuid":"380106553","full_name":"ericbrasiln/ferramentas_scielo_v2","owner":"ericbrasiln","description":"Esse repositório é parte dos projetos desenvolvidos pelos membros do LABHDUFBA e tem como objetivo oferecer ferramentas de raspagem, organização e análise de artigos ciêntíficos publicados na plataforma Scielo.br.","archived":false,"fork":false,"pushed_at":"2025-08-20T01:33:37.000Z","size":243,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-27T03:40:21.235Z","etag":null,"topics":["digital-humanities","python","scielo-xml","web-scraping"],"latest_commit_sha":null,"homepage":"https://labhdufba.github.io/ferramentas_scielo_v2/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericbrasiln.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-06-25T02:49:57.000Z","updated_at":"2025-08-20T01:33:41.000Z","dependencies_parsed_at":"2025-09-05T02:27:58.659Z","dependency_job_id":"604c5949-b433-4c17-bc7c-7c5861f4c141","html_url":"https://github.com/ericbrasiln/ferramentas_scielo_v2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ericbrasiln/ferramentas_scielo_v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericbrasiln%2Fferramentas_scielo_v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericbrasiln%2Fferramentas_scielo_v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericbrasiln%2Fferramentas_scielo_v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericbrasiln%2Fferramentas_scielo_v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericbrasiln","download_url":"https://codeload.github.com/ericbrasiln/ferramentas_scielo_v2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericbrasiln%2Fferramentas_scielo_v2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31524531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["digital-humanities","python","scielo-xml","web-scraping"],"created_at":"2026-04-07T19:02:31.134Z","updated_at":"2026-04-07T19:02:36.524Z","avatar_url":"https://github.com/ericbrasiln.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"img/labhd.png\" height=\"256\" width=\"256\"/\u003e\u003c/p\u003e\n\n# Ferramentas Scielo v2 \n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7032159.svg)](https://doi.org/10.5281/zenodo.7032159) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)\n\nVeja a documentação completa em https://labhdufba.github.io/ferramentas_scielo_v2/\n\n---\n\nNo 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.\n\nFoi 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.\n\nCom a `ferramentas_scielo_v2` é possível realizar a raspagem [por área do conhecimento](https://labhdufba.github.io/ferramentas_scielo_v2/#raspagem-por-area-de-conhecimento) ou [por revista (ou uma lista de revistas)](https://labhdufba.github.io/ferramentas_scielo_v2/#raspagem-por-revista-ou-por-lista-de-revistas). Também é possível optar pelo tipo de raspagem: apenas XML ou XML e PDFs.\n\nTambém disponibilizamos uma ferramenta para converter os XMLs para CSV, com o script `scielo_xml_to_csv/run.py`.\n\n## Instalação\n\n### Pré-requisitos\n\nPara 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.\n\nA ferramentas desse projeto foram escritas em [Python 3.8](https://www.python.org/). Portanto, para executar o arquivo .py é preciso instalar o Python3 em seu computador.\n\n[Clique aqui](https://python.org.br/instalacao-windows/) para acessar um tutorial de instalação do Python no Windows, [clique aqui](https://python.org.br/instalacao-linux/) para Linux e [clique aqui](https://python.org.br/instalacao-mac/)\npara Mac.\n\nApó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](https://programminghistorian.org/pt/licoes/instalacao-modulos-python-pip).\n\n1. Acesse o diretório em que o arquivo `requirements.txt` está salvo:\n   ```{.sh .bash}\n   $ cd \u003ccaminho para a pasta\u003e\n   ```\n2. Instale as bibliotecas requeridas com o seguinte comando:\n   ```{.python}\n   pip3 install -r requirements.txt\n   ```\n\n#### WebDriver e Navegador\n\nPara que a ferramenta funcione, é necessário ter instalado o navegador [Mozilla Firefox](https://www.mozilla.org/pt-BR/firefox/new/). Além disso, é necessário ter instalado o WebDriver do Mozilla Firefox, GeckoDriver. \n\nPara acessar a versão mais recente do GeckoDriver [visite o repositório do Mozilla no GitHub](https://github.com/mozilla/geckodriver/releases). É possível encontrar mais [informações oficiais aqui](https://firefox-source-docs.mozilla.org/testing/geckodriver/index.html).\n\nPara inserir o webdriver no PATH de sistemas Unix e Windows, leia essa questão no [StackOverflow](https://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path/40208762#40208762).\n\nAgora é possível executar a ferramenta direto do prompt de comando do Windows ou pelo terminal do Linux, ou utilizar as diversas [IDE](https://pt.wikipedia.org/wiki/Ambiente_de_desenvolvimento_integrado) disponíveis.\n\n## Utilização\n\nNa 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.\n\n### Raspagem por área de conhecimento\n\nEsse script permite ao usuário selecionar qual assunto pretende raspar de acordo com a categorização estabelecida pela plataforma [Scielo.br](https://www.scielo.br/journals/thematic?status=current). \n\nPara isso é preciso executar o seguinte comando, do interior da pasta onde o arquivo está localizado:\n\n```{.sh}\npython3 scielo_v2.py\n```\nA seguinte mensagem será exibida:\n\n```{.python}\n-=-Definição da área temática-=-\n\n- Opções:\n1- Ciências Agrárias\n2- Ciências Biológicas\n3- Ciências da Saúde\n4- Ciências Exatas e da Terra\n5- Ciências Humanas\n6- Ciências Sociais Aplicadas\n7- Engenharias\n8- Linguística, Letras e Artes\nDigite o número correspondente à área temática que deseja raspar: \n```\nApós a definição do assunto, é preciso definir o tipo de raspagem: \n\n1. Realizar a raspagem de todos os arquivos XML de todas as edições de todas as revistas da área selecionada: opção `1`;\n2. 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`.\n   \n:warning: 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.\n    \n:warning: Os arquivos XML possuem todos os metadados dos artigos, incluindo o texto completo e as referências bibliográficas.\n\n### Raspagem por revista ou por lista de revistas\n\nNesse script é possível raspar uma revista ou uma lista de revistas específicas através de seu nome.\n\nPossui 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.\n\nPor 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.\n\n```{.html}\nhttps://www.scielo.br/j/alm/\n```\n\nNesse caso, o abreviação do nome da revista é `alm`. Esse termo deve ser informado para o programa.\n\n```{.sh}\n-=- Definição da(s) revista(s) -=-\n\nDigite a abreviação da revista que deseja raspar: alm\nDeseja inserir outra? [S/N]\n```\n\n:warning: Atenção\n\nAmbos os scripts criarão diretórios para armazenar os arquivos e dados.\n\n- `scielo/{AAAA-MM-DD}/PDF/{nomeDaRevista}` no caso da raspagem de PDFs;\n- `scielo/{AAAA-MM-DD}/XML/{nomeDaRevista}` no caso da raspagem de XMls.\n\nEntretanto, 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.\n\n## Conversão de XML para CSV\n\nApós o download dos arquivos XML é possível utilizar a ferramenta `scielo_xml_to_csv` para converter todos os XML para um arquivo `csv`.\n\nAcesse a pasta `scielo_xml_to_csv` e execute o arquivo `run.py`.\n\nEsses 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.\n\nO `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`. \n\n:warning: _É 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._\n\nAs seguintes informações são inseridas no CSV:\n\n- index,\n- file_name: nome do arquivo,\n- article_id: identificação do arquivo,\n- article_category: categoria do arquivo,\n- authors: lista de autores,\n- contact_email: e-mail do/a autor/a principal\n- authors affiliation: lista de filiações,\n- article_title: título do artigo,\n- journal_title: título do revista,\n- journal_issn: ISSN da revista,\n- journal_publisher: instituição da revista,\n- pub_date: ano da publicação,\n- abstract: resumo,\n- key_words: lista de palavras-chave,\n- issue: edição,\n- num: número,\n- doi: DOI,\n- full_text: texto completo do artigo,\n- footnotes: notas de rodapé,\n- refs: lista (contendo listas) das referências bibliográficas.\n\nEm 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`.\n\n---\n\nElementos presentes nesse repositório foram retirados de [Scielo_Journal_Metadata_Downoader](https://github.com/johnsgomez/Scielo_Journal_Metadata_Downoader), criado por [johnsgomez](https://github.com/johnsgomez)\n\n## Como citar?\n\nÉ possível clicar em `Cite this repository` na aba à direita nesse repositório para acessar a citação nos formatos APA e BibTex, ou ainda acessar o [arquivo da citação](CITATION.cff) em formato `.cff`.\n\nAbaixo a citação no formato BibTex:\n\n```\n@software{brasil_eric_2022_5168727,\n  author       = {Brasil, Eric and\n                  Nascimento, Leonardo and\n                  Andrade, Gabriel and\n                  Barbosa, Jorge},\n  title        = {Ferramentas Scielo v2},\n  month        = sep,\n  year         = 2022,\n  note         = {{Se você utilizar esse programa, por favor cite \n                   como referenciado abaixo.}},\n  publisher    = {Zenodo},\n  version      = {2.2},\n  doi          = {10.5281/zenodo.5168727},\n  url          = {https://doi.org/10.5281/zenodo.5168727}\n}\n```\n\n## Licença \n\n[MIT Licence](LICENSE)\n\n2021 [Eric Brasil (IHL/UNILAB, LABHDUFBA)](https://github.com/ericbrasiln), [Gabriel Andrade (UFBA, LABHDUFBA)](https://github.com/gabrielsandrade), [Leonardo Nascimento (UFBA, LABHDUFBA)](https://github.com/leofn)\n[Jorge Barbosa (PPGCS/UFBA, LABHDUFBA)](https://github.com/jhsbarbosa)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericbrasiln%2Fferramentas_scielo_v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericbrasiln%2Fferramentas_scielo_v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericbrasiln%2Fferramentas_scielo_v2/lists"}