A seção “Capas de Hoje” do Newseum é uma grande fonte de pesquisa para professores, estudantes e jornalistas. Mas, quando a gente precisa de todas as capas para algum estudo comparativo, é chato ficar clicando em cada miniatura e depois em cada link para PDF ou jpeg. Neste artigo, mostro como esta tarefa pode ser facilitada com um pouco de processamento de texto básico.
A jogada é obter uma lista com os nomes dos arquivos de capas e, a partir dela, gerar uma lista com os links para os arquivos PDF (ou jpg).
Obtendo a lista de todas as capas
- Preciso ter instalada a extensão XPath Checker do Firefox.
- Nas páginas de miniatura de capas do Newseum, peço para serem exibidas todas (all) as capas de uma região ou do arquivo completo.
- Clico com o botão da direita em cima de um dos links para a página grande e seleciono “View xpath” no menu que aparece. Surge a janela com o xpath “id(‘mainContent’)/x:div[3]/x:div/x:h2/x:a/x:em“. “div[3]” significa que eu cliquei no terceiro link da página. Cada link está numa DIV HTML própria. Este número varia conforme o link em que eu clicar.
- Substituo “div[3]” por “div[*]“. Se aparecer o trecho “/x:em“, apago-o porque só quero o xpath até o “/x:a“, que simboliza o link — âncora hipertextual — na linguagem xpath. O asterisco é um coringa que serve para listar todas as divisões da página. Na tela de baixo, será apresentada uma lista de links para as páginas grandes.
- Copio todo o código da janela clicando nela e usando CTRL+A (selecionar tudo) e CTRL+C (copiar). O código foi copiado como HTML e como texto plano.
- Colo no editor de texto LibreOffice. Será colado o HTML formatado. É isto que eu preciso, para obter os links.
- O Xpath Checker coloca os links dentro de uma tabela com duas colunas: um número de ordem e dois pontos, e o link na segunda coluna. Seleciono e apago a primeira coluna. Para simplificar o posterior processamento de texto, converto a tabela em texto separando o texto por algo como ponto-e-vírgula (menu Tabela > Converter > De tabela para texto).
- Salvo como texto HTML e abro o arquivo salvo no editor de texto plano Notepad++.
- Aparece o código HTML que devo limpar e formatar, fazendo algumas substituições de texto.
- Apago o código HTML do início até a lista de links, pouco depois do <BODY>, e o HTML final, depois da lista.
- Sobra uma lista de links como:
<P CLASS=”western”>1:;<A HREF=”http://www.newseum.org/todaysfrontpages/hr.asp?fpVname=ARG_DD&ref_pge=gal&b_pge=1″><EM>Diario
Democracia</EM><BR>Buenos Aires, Argentina</A></P> - Eu preciso só do nome do arquivo de capa. No caso acima, é ARG_DD.
- Seleciono os caracteres de fim-de-linha (no Windows, CR+LF), teclo CTRL+H e troco todos os fins-de-linha por nada, e “</A></P>” por nova linha (\n), para deixar cada link numa única linha.
- Agora, troco “;<A HREF=”http://www.newseum.org/todaysfrontpages/hr.asp?fpVname=” pelo endereço dos arquivos PDF, que obtenho na página de uma das capas, no link “Readable PDF”. Ou seja: “http://webmedia.newseum.org/newseum-multimedia/dfp/pdf24/“. Suponho que sejam os PDF do dia 24.
- Marco no Notepad++ “Expressões regulares” e troco a expressão regular “<P>[0-9]*:” ou “^(<p.*?:)” — do início da linha até o primeiro “:” — por “wget -nc ” — o comando que vai baixar o PDF.
- Troco a expressão regular “&.*$” — do “&” até o fim da linha — por “.pdf“, ou seja: tudo, de & até o fim da linha, por “.pdf”.
- Agora, eu tenho uma lista de comandos para baixar o PDF com o wget, como “wget -nc http://webmedia.newseum.org/newseum-multimedia/dfp/pdf24/ARG_DD.pdf“.
- Gravo o arquivo como newseum.sh (em Linux, preciso torná-lo executável) ou newseum.bat (em Windows), e está pronto o arquivo de comandos que pode ser executado para baixar todas as capas. Em Windows, o executável wget.exe deve estar na mesma pasta que o arquivo de comandos criado.
Leave a Reply