Chron_extract - extractor de cronologias web
Chron_extract � uma script feita em Perl para extrair cronologias a partir de p�ginas web. Utilizando o m�dulo Template::Extract, esta script reconhece informa豫o presente em documentos HTML, gerando ficheiros chronl que s�o interpretados pelo m�dulo Chronology. A sua utiliza豫o passa apenas por etiquetar o documento Html que cont�m a informa豫o e escrever um ficheiro de configura豫o onde s�o indicados os blocos de informa豫o a extrair.
Para testar a script, invocar
./chron_extract.pl config config_extract_1807 outfile inv1807.cl year 1807 inv1807.html
e consultar o ficheiro inv1807.cl gerado.
chron_extract.pl [OPTIONS] ficheiro.html
A sec豫o OPTIONS � do tipo 'chave valor' em que as chaves e valores poss�veis s�o:
Em rela豫o � invoca豫o da script conv�m ter em conta que:
� composto por um conjunto de blocos separados por uma linha tracejada (-------). Cada bloco � constitu�do necessariamente por 3 campos: block (nome do bloco), type (tipo do bloco) e format (formato do bloco).
Existem v�rios blocos poss�veis:
[% c1 %]. Recomenda-se tamb�m que, entre dois
blocos onde possa haver espa�os no documento html, se inclua a etiqueta [% /\s*/ %].
No cado das strings, s� � admiss�vel um campo: a pr�pria string. O nome do
campo dever� ser igual ao do bloco mas em min�sculas. Nos blocos do tipo array,
existem campos associados a cada bloco. Para ver os campos dispon�veis em cada
bloco, consultar a sec豫o anterior block.
Conv�m perceber que cada bloco � constitu�do por v�rios campos no caso dos
arrays ou de um s� campo no caso das strings. Todos os campos seguem o seguinte
esquema: [% c %] em que 'c' � o nome do campo.
Como exemplo, est� dispon�vel o ficheiro de configura豫o do documento inv1807.html.
A etiquetagem do documento Html � muito simples. Basta colocar <!--BEGIN nome_bloco-->
e <!--END nome_bloco--> no in�cio e fim de cada bloco.
Recomenda-se que, no caso de blocos do tipo String a etiqueta BEGIN e END seja
colocada imediatamente antes e depois do texto a extrair. No caso do tipo Array,
recomenda-se que se crie uma nova linha quer para a etiqueta BEGIN quer para a
etqiueta END (ver ficheiro inv1807.html como exemplo).
Quer a etiqueta BEGIN como a END, est�o em forma de coment�rio HTML pelo que
a sua colo豫o nos documentos n�o altera a forma como eles s�o visulalizados
pelos browsers. Pareceu-nos mais sensata esta abordagem do que aquela que foi
seguida no desenvolvimento do m�dulo WWW::Extractor.
Atrav�s da op豫o debug, � possivel obter informa豫o adicional sobre o comportamento da script. Pode ser muito �til no caso da ocorr�ncia de erros.
Existem 4 niveis de debug:
Toda a informa豫o de debug � enviada para a Standard Error (STDERR).
Aconselha-se que quando se utilize a op豫o debug, seja tamb�m utilizada a op豫o outfile para se poder distinguir a informa豫o de debug com o c�digo chronl.
O chron_extract n�o garante que o ficheiro gerado esteja de acordo com a gram�tica do chronl. Em muitos casos, o c�digo gerado constitui apenas uma aproxima豫o que dever� ser revista e completada pelo utilizador final. Assim, existe uma op豫o validate que por omiss�o est� activada e que valida o ficheiro gerado. Desta forma, o utilizador fica com uma ideia do estado da cronologia gerada.
Para mais facilmente extrair a informa豫o do documento HTML, �-lhe feito uma normaliza豫o que permite remover, entre outras coisas, espa�os adicionais ou mudan�as de linha.
Como exemplo, est� dispon�vel um documento Html contendo uma cronologia das invas�es francesas em 1807 (inv1807.html) e o ficheiro de configura豫o (config_extract_1807). O documento Html foi obtido no do Portal de Hist�ria (www.arqnet.pt) e est� dispon�vel em http://www.arqnet.pt/portal/portugal/invasoes/inv1807.html
Invocando
$./chron_extract.pl config config_extract_1807 outfile inv1807.cl year 1807 inv1807.html
produziria o seguinte output
Block NAME is correctly extracted
Block KEYWORDS is correctly extracted
Block EVENTS is correctly extracted
Examinating the generated file...
The file is valid with the chronl grammatic
Luis Oliveira - luis.oliveira@montemuro.org
Dado que o m�dulo Template::Extract tem uma grande import�ncia nesta script, recomenda-se a leitura dos seguintes documentos:
Recomenda-se tamb�m a leitura da documenta豫o do m�dulo Chronology uma vez que esta script serve de suporte a esse m�dulo.