Giter VIP home page Giter VIP logo

ericbrasiln / pyhdb Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 8.0 1.55 MB

pyHDB - Ferramenta de auxílio metodológico para pesquisas na interface da Hemeroteca Digital Brasileira da Biblioteca Nacional. Desenvolvida por Eric Brasil (IHLM-UNILAB) como parte de pesquisa acadêmica da área de História Digital.

Home Page: https://ericbrasiln.github.io/pyHDB/

License: MIT License

Python 99.17% CSS 0.83%
digital-history selenium-python web-scraping newspapers python python3

pyhdb's Issues

[BUG]

Descreva o bug
O programa roda, porém, o script sempre encontra 0 ocorrências, mesmo elas existindo na Hemeroteca.

Reproduzir
Foi seguido exatamente o passo a passo solicitado. Foi feita a tentativa no Windows e no Linux, em diferentes computadores, sem sucesso.

Comportamento esperado
Era para aparecer as ocorrências na pasta, conforme a documentação. Ele sequer encontra ocorrências.

Screenshots
image

Desktop (por favor, preencha as seguintes informações):

  • SO: Linux Mint, Windows 10 e Windows 11
  • Versão do Python: 3.11
  • Terminal ou terminal virtual: CMD, PowerShell e Terminal (Linux Mint)

Não consigo executar

Oi Eric! Help!

Não estou conseguindo executar a raspagem. Estou principalmente com 2 problemas:

  1. Na instalação do urllib.requests aparecem os sguintes erros:
    ERROR: Could not find a version that satisfies the requirement urllib.requests (from versions: none)
    ERROR: No matching distribution found for urllib.requests

  2. Depois de instalar as outras bibliotecas, baixar o script, clonar o repositório, qunado vou instalar os requisitos e colocar o local onde armazenei, aparece o erro:
    O sistema não pode encontrar o arquivo especificado.
    Sem título


Não sei se estou errando no meio do caminho, mas tô há horas quebrando a cabeça e não vai.. Se vc tiver alguma dica para me dar, agradeço imenso!!

Não consigo executar!

Querido, Eric! Primeira aventura no manuseio do Python e outros comandos.

Fiz todos os passos descritos no manual do pyHDB porém não tenho êxito no momento de inicializá-lo.

  1. No Powershell:
    image

  2. Ao clicar duas vezes na pasta, abre rapidamente e logo depois fecha:
    Sem título

Sem título 1

Apesar do ícone do Opera aberto, tenho o Chrome instalado.

Muito obrigado pela dedicação ao software, abrindo essas portas!

Ansioso para utilizá-lo sem problemas.

Abraço!

Cores no terminal: compatibilidade com Windows

Descrição do problema

A sintáxe para mostrar cores no terminal de sistemas Linux não funciona no Windows. Então, o resultado é a impressão da tela dos códigos das cores.

TODO

  • Definir método para utilizar cores que seja multi plataforma (de preferência com módulo ou biblioteca interna do Python).
  • Testar e corrigir
  • Documentar
  • Fazer PR e fazer novo release com a tag v1.5.1 (junto com #8 )

[BUG]

Descreva o bug
Aparentemente a versão do ChromeDriver utilizado não condiz com a versão do Google Chrome atual. Mesmo atualizando o ChromeDriver, o programa indica este erro.

Reproduzir
O comportamento é visto quando executo o código via terminal com:
python3 pyHBD.py

Comportamento esperado
O programa deveria continuar executando, me dando as opções que nele existem.

Screenshots
image

Desktop (por favor, preencha as seguintes informações):

  • SO: Linux Mint 21.2
  • Versão do Python: 3.10.12
  • Terminal ou terminal virtual: Terminal do Linux Mint 21.2

Informações adicionais:
Testei o pyHDB_acervos.py e ocorre o mesmo erro.
Baixei e testei o ChromeDriver mais atualizado e o erro segue.
Acredito que seja algum problema com a versão utilizada no código mesmo.

TODO

Algumas melhorias ainda precisam ser feitas.

  • Incluir na documentação informações sobre o artigo publicado: BRASIL, Eric. pyHDB - Ferramenta Heurística para a Hemeroteca Digital Brasileira: utilizando técnicas de web scraping para a pesquisa em História. História da Historiografia: International Journal of Theory and History of Historiography, Ouro Preto, v. 15, n. 40, p. 186–217, 2022. DOI: 10.15848/hh.v15i40.1904. Disponível em: https://www.historiadahistoriografia.com.br/revista/article/view/1904. Acesso em: 6 jan. 2023.
  • Cores no terminal para Windows (ver #10 ): incluir informações na documentação
  • Alterar a nomeação da 'frequência de ocorrências por página'. Na verdade, se trata de quantidades de páginas necessárias para o apareceimento de uma ocorrência.
  • Nomeção do relatório infos_acervos_{{período}}_page01:
    • Não leva em consideração diferentes locais com mesmo período e termo de busca. Com isso, salva por cima de relatório anterior.
    • Remover espaços no período. Exemplo: 1880 - 1889 para 1880-1889
  • Nomeação dos relaórios de acervos relatório_{{nome-do-acervo}}_{{número-do-acervo}}_{{AAAA-MM-DD}}_{{HH-MM-SS}}:
    • Remover espaços no nome do acervo
    • Remover caracteres especiais
  • Corrigir Bug na busca: headless não carrega a página corretamente (ver issue #17 e #18 )
  • Aviso de jornal com restições: padronizar texto.

Problema constante de erro de raspagem

Descreva o bug
Olá, tudo bem? A raspagem não consegue ser concluída com o uso da ferramenta que raspa vários acervos, nem com o uso da ferramenta que raspa um acervo por vez. A correspondência de termos entres os acervos que me interessam variam de 300 a 3000, mas apresenta erro mesmo nos acervos de menor correspondência. O programa gera csv de relatório, textos de busca e erro, mas não gera csv de resultado.

Reproduzir
python pyHDB_acervos.py (ou pyHDB cujo erro é o mesmo)(python3 não funciona como comando na minha versão, mas eu sou leigo, aprendi só o básico para fazer essa tarefa)

Código do acervo: 100439_12

Termo de Busca: "Belford Roxo"
Comportamento esperado
Esperava que o programa, após o comando de busca, retornasse um csv com as informações referentes às correspondências do termo buscado nos acervos

Screenshots
image
image
image

Desktop (por favor, preencha as seguintes informações):

  • SO: Windows 10
  • Versão do Python: 3.12
  • Terminal ou terminal virtual: Py Charm Community 2024.1.1

Problema no parâmetro "termo da busca": termos sem o uso de `"` como delimitador retorna erro

Descrição do erro

Ao buscar termos sem a utilização de aspas duplas para definir expressões exatas, o programa está retornando o seguinte erro:

Traceback (most recent call last):
  File "/home/ebn/Documentos/test_pyHDB/pyHDB/src/pyHDB.py", line 115, in <module>
    set_journal(driver, journal)
  File "/home/ebn/Documentos/test_pyHDB/pyHDB/src/parameters.py", line 51, in set_journal
    p_arrow = WebDriverWait(driver, 40).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="PeriodicoCmb3_Arrow"]'))).click()
  File "/home/ebn/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py", line 81, in click
    self._execute(Command.CLICK_ELEMENT)
  File "/home/ebn/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py", line 740, in _execute
    return self._parent.execute(command, params)
  File "/home/ebn/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
    self.error_handler.check_response(response)
  File "/home/ebn/.local/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span id="PeriodicoCmb3_Arrow" class="p-icon p-i-arrow-60-down"></span> is not clickable at point (773, 162). Other element would receive the click: <div class="raDiv">...</div>
  (Session info: headless chrome=102.0.5005.115)
Stacktrace:
#0 0x558340f63f33 <unknown>
#1 0x558340cae118 <unknown>
#2 0x558340ceba42 <unknown>
#3 0x558340ce95f2 <unknown>
#4 0x558340ce6c74 <unknown>
#5 0x558340ce58c5 <unknown>
#6 0x558340cd95b9 <unknown>
#7 0x558340d01f72 <unknown>
#8 0x558340cd8e73 <unknown>
#9 0x558340d0207e <unknown>
#10 0x558340d152e4 <unknown>
#11 0x558340d01e63 <unknown>
#12 0x558340cd782a <unknown>
#13 0x558340cd8985 <unknown>
#14 0x558340fa84cd <unknown>
#15 0x558340fac5ec <unknown>
#16 0x558340f9271e <unknown>
#17 0x558340fad238 <unknown>
#18 0x558340f87870 <unknown>
#19 0x558340fc9608 <unknown>
#20 0x558340fc9788 <unknown>
#21 0x558340fe3f1d <unknown>
#22 0x7f6d4df3db43 <unknown>

Quando a busca é realizada por expressões exatas (com " como delimitador) a ferramenta funciona corretamente até para mais de três termos.

TODO

  • Realizar debug e encontrar o erro
  • Corrigir e testar
  • Documentar
  • Incluir recomendações de uso na documentação
  • Fazer PR e fazer novo release com a tag v1.5.1

[BUG] Problema com webdriver do Chrome

O programa não está sendo executado corretamente após as atualizações mais recentes do Google Chrome, gerando problemas com o webdriver do Selelium.

Estou corrigindo o problema alterando para o webdriver do Firefox e testando soluções para os erros de carregamento das páginas de resultados.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.