Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Possivel falha UTF8 e outras dicas #2

Open
ppKrauss opened this issue Sep 7, 2016 · 0 comments
Open

Possivel falha UTF8 e outras dicas #2

ppKrauss opened this issue Sep 7, 2016 · 0 comments

Comments

@ppKrauss
Copy link

ppKrauss commented Sep 7, 2016

As páginas HTML de matérias do DO-RJ (rio.rj.gov.br) possuem boa estrutura e conteúdo fiel, uma pena que não cumpram minimamente com os padroões vigentes (ePING, IETF, W3C, etc. recomendam UTF-8) nem o cabeçalho mínimo de uma página HTML (deveria extressar charset no meta).

No getHtm.py é suposto que TODAS as páginas façam uso de charset iso-8859-1... Até parece que sim, mas não é correto supor (forçar que seja), o mais seguro é detectar automaticamente a origem antes de converter. Talvez simplesmente mudando
materia[0][1:].decode('iso-8859-1').encode('utf8')
para
materia[0][1:].encode('utf8')
o Python já se encarregue sozinho disso. Testar: se ficar tudo igual, sinal que o auto-detect funcionou (!). Eventualmente corrigirá algum caso de windows-1250 ou BOM.


Comentários

O http://validator.w3.org/ detectou também iso-8859-1 de amostras, ainda assim os próprios mantenedores do validador lembram que é complicado supor o charset de origem: Checking the character encoding using the validator. Como há uma avalanche de pequenos problemas, o ideal é ter ao menos o charset bem resolvido:

Para corrigir todos os problemas subsequentes, basta "limpar" o HTML tendo em vista que a estrutura das matérias é de apenas parágrafos. Isso foi feito com sucesso por um script PHP, clean.php, que pode ser facilmente traduzido para Python (eu ajudo).

Outra dica: iniciativa similar, que já grava em nomes de pasta adequados, podendo ser adaptado para o padrão ePING de nomes (URNs) de normas, https://github.com/andresmrm/trazdia

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant