SlideShare ist ein Scribd-Unternehmen logo
1 von 91
Downloaden Sie, um offline zu lesen
WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS
Jordão Ortega Jemusse Manguena
UNIVERSIDADE ZAMBEZE
FACULDADE DE CIÊNCIAS E TECNOLOGIA
WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS
JORDÃO ORTEGA JEMUSSE MANGUENA
BEIRA
2014
UNIVERSIDADE ZAMBEZE
FACULDADE DE CIÊNCIAS E TECNOLOGIAS
WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS
JORDÃO ORTEGA JEMUSSE MANGUENA
ORIENTADOR: Dr. C. ENG°. JOSÉ ALBERTO VIGUERAS MORENO
BEIRA
2014
Monografia Científica submetida a Faculdade
de Ciências e Tecnologias, Universidade
Zambeze, Beira, em cumprimento dos
requisitos para a obtenção do Grau de
Licenciado.
DECLARAÇÃO
Eu, JORDÃO ORTEGA JEMUSSE MANGUENA declaro que esta monografia é resultado
do meu próprio trabalho e está a ser submetida para a obtenção do grau de Licenciado em
Engenharia Informática na Universidade Zambeze, Beira. Ela não foi submetida antes para
obtenção de nenhum grau ou para avaliação em nenhuma outra universidade.
Beira, ____ de Novembro de 2014
___________________________________________________
(Jordão Ortega Jemusse Manguena)
AGRADECIMENTO
Agradeço a Deus e aos meus familiares por me suportarem em momentos de
dificuldades e tolerar a minha falta de tempo para assuntos familiares em detrimento dos
estudos.
A Universidade Zambeze por me dar a oportunidade de fazer o curso e de reunir todas
as condições para que as aulas decorressem normalmente e sempre se preocupou com a
qualidade do conhecimento que se transmite.
Ao meu orientador Dr. C. Eng. José Alberto Vigueras Moreno que dedicou muito
tempo a tarefa de me guiar durante todo o processo de elaboração desta monografia e
mostrou imensa disponibilidade em me auxiliar.
A todos os meus colegas do curso de Engenharia Informática.
ÍNDICE
RESUMO................................................................................................................................... I
ABSTRACT.............................................................................................................................. II
LISTA DE ILUSTRAÇÕES....................................................................................................III
LISTA DE TABELAS.............................................................................................................IV
LISTA DE ABREVIATURAS.................................................................................................V
INTRODUÇÃO.........................................................................................................................1
CAPÍTULO 1. MARCO TEÓRICO CONCEITUAL ...............................................................6
1.1. TENDÊNCIA HISTÓRICA DA IMPRESA ......................................................................6
1.2. CARACTERIZAÇÃO EPISTEMOLÓGICA ..................................................................13
1.2.1. Extracção de Informação ...............................................................................................14
1.2.2. Extracção de informação na Web ..................................................................................21
CAPÍTULO 2. DESENVOLVIMENTO DA PROPOSTA: WEB SCRAPER DE NOTÍCIA
PARA DISPOSITIVOS MÓVEIS...........................................................................................27
2.1. FONTES DE NOTÍCIAS .................................................................................................27
2.2. ENGENHARIA DE REQUISITOS..................................................................................29
2.2.1. Requisitos funcionais.....................................................................................................29
2.2.2. Requisitos não funcionais ..............................................................................................32
2.3. DESENHO DO SISTEMA...............................................................................................36
2.3.1. Diagrama de caso de uso................................................................................................36
2.3.2. Diagrama de deployment ...............................................................................................43
2.3.3. Diagrama de componentes.............................................................................................44
2.4. ARQUITECTURA ...........................................................................................................45
2.5. IMPLEMENTAÇÃO DO SISTEMA...............................................................................47
2.5.1. Desenvolvimento back end............................................................................................47
2.5.2. Desenvolvimento front end............................................................................................51
2.6. MANUAL DO USUÁRIO ...............................................................................................51
2.6.1. Página inicial..................................................................................................................52
2.6.2. Lista de notícias .............................................................................................................53
2.6.3. Notícias ..........................................................................................................................54
CAPÍTULO 3. RESULTADOS E CONCLUSÃO..................................................................57
3.1. RESULTADOS.................................................................................................................57
3.2. TRABALHOS FUTUROS ...............................................................................................58
3.3. CONCLUSÃO ..................................................................................................................59
BIBLIOGRAFIA .....................................................................................................................61
ANEXOS .................................................................................................................................65
I
RESUMO
Actualmente as plataformas digitais de notícias principalmente os websites estão se
transformando fontes preferenciais de acesso a informação por um número cada vez mais
crescente de pessoas e junto desta realidade está o facto dos dispositivos móveis com alto
poder de processamento como os smartphones estarem a tornar-se no principal meio de
computação e acesso a internet. Através da revisão da bibliografia e observação exaustiva da
realidade identificou-se a existência de dificuldades no acesso de conteúdo noticioso recente
e de forma simplificada por meio de plataformas digitais de notícias especialmente adaptados
para dispositivos móveis. Como forma de ultrapassar esta questão a presente monografia tem
como objectivo desenvolver um web scraper de notícia para dispositivos móveis que irá
prover informação recente de diferentes fontes numa só plataforma em qualquer lugar e hora.
Assim sendo, implementou-se o sistema utilizando tecnologias web principalmente o PHP5
tendo como resultado evidencias suficientes do funcionamento devidamente optimo da
proposta, materializando-se com sucesso o desafio apresentado.
Palavras-chaves: Extracção de informação, dispositivos móveis, web scraping, fonte de
notícia e smartphone.
II
ABSTRACT
Digital platforms of news mainly websites are becoming preferential source of information
by an increasing number of people and linked to this reality is the fact that mobile devices
with high processing power like smartphones are being the main mean of computation and
access to the internet. Through literature review and exhaust observation of the reality it was
identified the existence of difficulties in the access of recent news in a simple manner using
digital plataforms especially adapted to mobile devices; as a way to solve the problem
presented this monograph has the objective of developing a news web scraper for mobile
devices which is going to provide recent information from different sources in only one
platform at any place and time. Thus, the system was implemented using web technologies
mainly PHP5. As a result, there are enough evidences to claim that the proposed system
functions properly, successfully materializing the objective.
Keywords: Information extraction, mobile devices, web scraping, news source and
smartphone.
III
LISTA DE FIGURAS
Figura 1: Arquivo BibLATeX mostrando informação bibliográfica sobre esta monografia...15
Figura 2: Exemplo de uma transação HTTP............................................................................22
Figura 3: Diagrama de caso de uso indicando acesso e fornecimento de notícias ..................37
Figura 4: Diagrama de deployment do sistema........................................................................43
Figura 5: Diagrama de componentes ilustrando a dependência entre diferentes componentes
do sistema.................................................................................................................................44
Figura 6: Diagrama de componentes apresentando as APIs utilizados pelo sistema. .............45
Figura 7: Arquitectura de três camadas do sistema .................................................................46
Figura 8: Extracção de links para títulos de notícias da AIM..................................................48
Figura 9: Extracção de títulos de notícias do website da AIM ................................................49
Figura 10: Criação de âncoras contendo títulos de notícias e os seus respectivos links para
AIM..........................................................................................................................................50
Figura 11: Uso do cURL para PHP no sistema........................................................................50
Figura 12: Trencho de código HTML para a página inicial implementando JQuery mobile no
sistema......................................................................................................................................51
Figura 13: Página inicial ..........................................................................................................52
Figura 14: Lista de notícias para Sapo notícias (esquerda) e AIM (direita) ............................53
Figura 15: Lista de notícias da AIM com o telemóvel em landscape mode............................54
Figura 16: Visualização de uma notícia da AIM .....................................................................55
Figura 17: Link para acesso a fonte de notícia (AIM) e comentários no fim da notícia..........55
IV
LISTA DE TABELAS
Tabela 1: Exemplo fictício de entidades extraídas sobre um funcionário da Goolge..............18
Tabela 2: Exemplo de eventos de três usuários do Facebook..................................................20
Tabela 3: Interface do usuário e apresentação do conteúdo ....................................................30
Tabela 4: Serviços a serem oferecidos ao usuário ...................................................................31
Tabela 5: Componentes de software e linguagem de programação.........................................32
Tabela 6: Performance. ............................................................................................................33
Tabela 7: Ferrementas de desenvolvimento.............................................................................34
Tabela 8: Licença.....................................................................................................................34
Tabela 9: Interface de comunicação ........................................................................................34
Tabela 10: Uso do produto.......................................................................................................34
Tabela 11: Armazenamento de informação. ............................................................................35
Tabela 12: Segurança...............................................................................................................35
Tabela 13: Fontes de notícias...................................................................................................35
Tabela 14: Acesso....................................................................................................................36
Tabela 15: Hospedagem...........................................................................................................36
Tabela 16: Outros RNF............................................................................................................36
V
LISTA DE ABREVIATURAS
AIM- Agência de Informação de Moçambique
APIS- Interface de Programação para Aplicações
CERN -European Organization for Nuclear Research
DevTool- Chrome Developer Tool
DOM -Document Object Model
EI -Extracção de Informação
HTML-HyperText Markup Language
HTTP- Hypertext Transfer Protocol
NERCI- Reconhecimento de Entidades Nomeadas e sua Classificação
PC -Personal Computer
PDF -Portable Document Format
PLN -Processamento de Linguagem Natural
RF-Requisito Funcional
RNF-Requisito Não Funcional
SOICO -Sociedade Independente de Moçambique
URL-Uniform Resource Locator
WWW -World Wide Web
XML-Extensible Markup Language
VI
1
INTRODUÇÃO
As tecnologias de informação e comunicação estão em franco crescimento e elas
tendem a influenciar a forma como as pessoas vê o mundo e solucionam os problemas,
consequentemente a dependência sobre dispositivos electrônicos é crescente.
Até aos dias actuais o verdadeiro potencial de um computador é uma incognita porque
sempre supera a imaginação do homem, mesmo sendo ele o criador desta maravilha
tecnológica. Isto em parte porque várias tarefas cada vez mais complexas de diferentes áreas
de trabalho podem ser realizadas e também a existência de muita competição por parte de
gigantes da tecnologia que lutam pelo domínio do mercado mundial o que induz ao
desenvolvimento de novas tecnologias e introdução de novos padrões.
Com o uso crescente do computador e várias tecnologias relacionadas passou a se
gerar muita informação em base de dados, vídeos e diversos tipos de arquivos, alguns
padronizados e outros não para diferentes propósitos começando pelo simples
armazenamento, compartilhamento de dados, comunicação, entre outros.
De igual modo, à poucas décadas atrás (a partir dos anos 70) percebeu-se que a
informação armazenada na forma digital possui um enorme potencial que é a facilidade
relativa em comparação as fontes físicas que na sua maioria se apresentam em papel de se
conceber ferramentas tecnológicas com o uso do computador que possam possibilitar a sua
extracção.
Esta possibilidade de se extrair informação relevante de fontes digitais levanta um
conjunto de questões sobre as técnicas e procedimentos inerentes a este processo o que
originou o surgimento de uma área específica nas ciências de computação que pudesse lidar
2
com o processo de Extracção de Informação (EI) abrindo horizontes e paradigmas,
levantando novos problemas e propondo novas soluções.
Extrair Informação da internet constitui um imenso desafio porque as páginas web na
maioria das vezes não apresentam mecanismos para se obter informação nelas contida (no
contexto de extracção automática), em muitos casos porque não há interesse nisso, a mesma
situação se aplica aos serviços digitais de notícias.
Devido a necessidade de manter as pessoas informadas e para a sobrevivência do
negócio de venda de notícia as empresas produtoras de notícias tendem a migrar para
plataformas virtuais no mundo inteiro em detrimento dos meios tradicionais principalmente o
jornal e revistas impressas que tem o seu principal concorrente os websites de notícias e
plataformas similares como blogs, medias sociais e subscrição por correio electrónico.
Por mais que este processo seja lento, em Moçambique comparado com o resto do
mundo por insuficiência de recursos económicos, humanos e técnicos pode-se tê-lo como
irreversível pois é uma tendência global e apresenta inúmeros benefícios em comparação com
os meios convencionais a partir da etapa de busca de fontes de informação até a distribuição
que é relativamente pouco onerosa.
Os meios digitais de informação vão aumentando em termos unitários, criando cada
vez mais facilidades de acesso a um custo muito reduzido muitas vezes a um preço monetário
nulo que se justifica na incondicional ou “compulsiva” visualização de conteúdo publicitário
aos internautas, que não obedece limites físicos de fronteiras territoriais, de sistemas
operativos e recentemente do tipo de dispositivo a ser utilizado (desktop, laptop, netbook,
personal digital assistent, smartphone, tablet, smartwatch, chromebook, smarttv, consolas de
game…) que é fruto da padronização das tecnologias web que a todo o custo pretendem criar
um ambiente perfeito de interoperabilidade entre plataformas tecnológicas.
3
A parir da observação exaustiva da realidade (caracterizada pelo incremento dos
meios virtuais de acesso a notícias e tendência de uso do smartphone como principal
dispositivo de computação e de acesso a internet) e estudo profundo da literatura sobre esta
temática identificaram-se limitações nos sistemas de notícias baseados em plataformas
digitais (especificamente websites), as quais mostram-se a seguir:
 Existência escassa de serviços digitais que tem como intuito o acesso simplificado a
notícias a partir de fontes de referência.
 Limitações em aceder notícias a qualquer lugar e hora com recurso a um dispositivo
móvel (principalmente o smartphone).
 Alguns serviços digitais de notícias são estabelecidos por amadores, pessoas sem
acesso a fontes credíveis de notícias ou grupos que fazem cópia de conteúdo alheio o
que em algum momento pode por em causa a credibilidade do que se oferece.
Como consequência, nalgumas vezes pode ser exaustivo ou desencorajador localizar
a fonte correcta de notícia digital principalmente usando um smartphone, o que certamente é
contrário a qualquer princípio de oferta satisfatória de um determinado produto,
especialmente a informação. Por conseguinte, existe a necessidade de se organizar a
informação de diferentes fontes credíveis numa só plataforma de um modo muito simples
sem nenhum tipo de restrição e acessível através de dispositivos móveis, o que leva a
definição do seguinte problema nesta monografia:
 Dificuldades no acesso a conteúdo noticioso recente de qualidade e de forma
simplificada por meio de plataformas digitais de notícias especialmente adaptadas
para dispositivos móveis.
4
Pelo que é necessário para a solução do mesmo desenvolver um web scraper de
notícia para dispositivos móveis que irá prover informação recente de diferentes fontes de
referência numa só plataforma a qualquer lugar e hora, como objectivo geral deste projecto.
Para responder o problema científico tendo em consideração o objectivo exposto, tem-
se a seguinte hipótese: Se for desenvolvido um web scraper de notícia para dispositivos
móveis que irá prover informação recente proveniente de diferentes fontes, acessível a
qualquer lugar e hora cria-se muita simplicidade no acesso a notícias actualizadas de
qualidade para um número amplo de utilizadores de plataformas digitais de notícias.
Para o objectivo seja alcançado os seguintes objectivos específicos devem ser
considerados:
 Determinar a tendência histórica da imprensa.
 Caracterizar epistemologicamente o processo de EI incluindo o web scraping.
 Definir quais fontes de notícias dentre os vários disponíveis na internet serão
integrados no sistema que se pretende desenvolver e caracteriza-los.
 Desenvolver o sistema usando a técnica de EI web scraping com o uso da livraria
Simple HTM DOM na linguagem de programação PHP5 para a parte de back end e as
linguagens de programação HTML5, CSS3 e Javascript para a parte frontend que será
responsável em adaptar a aplicação para dispositivos móveis.
 Elaborar o manual do usuário da proposta.
 Fazer a apresentação dos resultados obtidos bem como os trabalhos futuros.
A área de estudo é a EI, em particular o web scraping que é uma técnica utilizada para
se adquirir informação a partir da internet, segundo a literatura “extracção de informação
refere-se a extracção automática de informação estruturada como entidades, relacionamentos
entre entidades e atributos descrevendo entidades de fontes não estruturadas” (SARAWAGI,
5
2008:1) e segundo MITCHELL (2013) web scraping é um processo automatizado que
envolve parsing (análise) de dados para obtenção da informação que se deseja; pelo que neste
caso fala-se da análise de informação fornecida pelas páginas web para a sua posterior
extracção e armazenamento utilizando bases de dados, arquivos Extensible Markup Language
(XML) ou alguma outra tecnologia de compartilhamento e armazenamento de dados.
Para uma melhor comprensão, explicação e interpretação o presente documento
apresenta-se dividido em introdução, três capítulos, bibliografia e anexos:
A introdução apresenta de uma forma geral o contexto da monografia, o problema e
os objectivos a serem alcançados.
O primeiro capítulo faz a apresentação de conceitos relevantes sobre o processo de EI,
as suas características, os diferentes métodos utilizados, o processo de EI na web, as
dificuldades encontradas, esclarecimento do conceito de web scraping e a taxonomia para
ferramentas de EI.
O segundo capítulo apresenta o desenho do sistema utilizando diferentes ferramentas
da Engenharia de Software, descrição dos diferentes componentes do sistema, a sua
arquitectura, a implementação e o manual do usuário.
O terceiro capítulo discute dos resultados obtidos, proposta de trabalhos futuros,
conclusão da monografia e por último, a bibliografia e anexos que mostram os códigos fontes
para extracção de notícias de algumas fontes de notícias.
6
CAPÍTULO 1. MARCO TEÓRICO CONCEITUAL
Neste capítulo descreve-se a tendência histórica da imprensa buscando-se os seus
momentos mais marcantes tendo em conta o mundo e Moçambique. A seguir, faz-se a
caracterização epistemológica do processo de EI focalizando-se nas teorias e vários processos
que dela fazem parte para que haja uma noção muito clara e científica da proposta desta
monografia.
1.1. TENDÊNCIA HISTÓRICA DA IMPRESA
A forma de produção, distribuição e acesso a notícias segue o desenvolvimento da
história da imprensa e este processo acompanha o progresso dos meios de comunicação em
massa. A presente abordagem baseia-se na classificação feita por FANG (1997) sobre as
diferentes fases da evolução dos meios de comunicação em massa, em alguns períodos
introduz-se uma abordagem no contexto moçambicano (e não em todos como deveria ser),
porque a imprensa de Moçambique não compartilha das mesmas fases de crescimento que o
resto do mundo principalmente o ocidente onde ocorreram os marcos mais importantes.
Primeira revolução: A escrita
A escrita foi criada por cerca de 3100 A.C, onde os sumérios inventaram números,
escrita pictográfica1
e possivelmente a Matemática; a escrita era feita sobre placas de argila.
Nos anos 2000 A.C o papiro foi adoptado como meio de escrita no Egipto antigo,
substituindo a pedra, mesmo assim o papiro possuía muitas limitações, uma delas era de não
1
Escrita pictográfica: escrita feita por meio de desenho de objectos e animais para recordação.
7
durar muito tempo e apenas era produzido no Egipto consequentemente, um meio de escrita
melhorado foi criado: o pergaminho.
A invenção do alfabeto ocorre nos anos 1700 A.C., a partir deste momento a
comunicação humana começava a quebrar os seus limites e a simplicidade do alfabeto
permitiu que muita gente pudesse usa-lo.
Segunda revolução: A impressão
No ano 59 A.C Julius Caesar ordenou que toda a informação oficial do seu governo e
anúncios fossem publicados em Roma e esses anúncios eram denominados Acta Diurna
(Transações Diárias), os boletins informativos que incluíam informações da acta eram cópias
feitas manualmente e enviadas às províncias romanas por ordem do imperador.
Poucos séculos depois na China, apareceu um jornal parecido ao Acta Diurna
conhecido como Tipao (relatório do palácio) trazendo noticias e anúncios de outras
províncias para a liderança (ENDRES, 2009). A primeira publicação do Tipao foi feita a mão
com impressão em blocos de madeira e esteve presente até o fim do império Manchu em
1911, este jornal sobreviveu por mais de doze séculos.
Nos meados do século XIV, na Europa as notícias apareciam em terceira ou quarta
mão a partir de monges, soldados, vendedores de indulgências e perdões papais que viajavam
de uma cidade para outra.
No ano de 1450 Gutenberg imprimiu a bíblia usando a imperssão do tipo móvel
(letras individuais, reutilizáveis, fundidas em metal ou madeira) tendo cada página cerca de
36 linhas.
8
Ele refinou os métodos nos anos seguintes e por volta de 1457 à 1458, cada página
tinha cerca de 42 linhas passando a produzir bíblias com este número de linhas por cada uma
das 1282 páginas de duas colunas das quais 42 bíblias por ele imprimido ainda existem
actualmente. Nos anos consecutivos a imprensa se espalhou por quase toda a Europa devido a
este tipo de impressão introduzido por Gutenberg, iniciando assim a revolução da informação
e repetição industrial.
Terceira revolução: Meios de comunicação
No ano de 1798 Nickolas Robert criou a primeira máquina de fabricação de papel,
antes desta invenção o papel era muito caro e de fabrico pouco eficiente, esta máquina
poderia fazer em dois dias trabalho que levaria três meses para a produção de papel, após
duas décadas esta máquina impulsionou em muito a impressão de notícias.
Nos séculos XVII e XVIII jornais passaram a apresentar ilustrações em xilogravura e
manchetes amontoados na primeira página. Nos meados do século XIX ocorre a mudança
para prensas maiores e notícias por telégrafo levou a mais injecção de capital para produção
de jornais e obtenção de renda a partir deles.
Diferentes continentes passaram a se ligar por cabo para que houvesse troca de
informação e junto disso notícias entre os cinco continentes poderiam-se enviar por telégrafo
em curto espaço de tempo. Em 1851 um cambo ligava Inglaterra e Franca e no mesmo
período países como Inglaterra e Irlanda, Dinamarca e Suíça depois África e Europa foram
ligados por cabo através do mar mediterrâneo, em 1866 o primeiro cabo transatlântico entre
Canadá e Inglaterra, em 1902 cabos chegaram a Austrália e em 1906 chegaram a Xangai na
China.
9
Nos finais do século XIX, fotografias passaram a fazer parte das notícias e
publicidades nos jornais, nasceu desta forma a arte denominada por fotojornalismo. Os finais
do século XIX viram o surgimento de gigantes de media com a venda de jornais privados
para grandes corporações.
A continuação desta abordagem sobre a terceira revolução nos próximos três
parágrafos tem como intuito trazer informação acerca da imprensa moçambicana durante este
período segundo a descrição fornecida por HOHLFELDT & GRABAUSKA (2010), os quais
expõem que a partir do século XIX surgem os primeiros jornais nacionalistas, sendo o mais
antigo O Africano de Quelimane (1 de Julho de 1877), seguiu-se a Revista Africana criada
por José Campos de Oliveira, o primeiro escritor de língua portuguesa nascido na colónia
(Moçambique).
Em 1886 surge Civilização Africana que teria sido um jornal editado na ilha de
Moçambique, ainda no século XIX surge o Clamor Africano datado de 1892, no mesmo ano
tem-se registo do surgimento do jornal O Luso-africano que se teria publicado a partir de 3 de
Janeiro de 1892 e outro O Africano, em 13 de Novembro do mesmo ano; não se tem muita
informação sobre eles e é possível que não tenham passado de uma só edição.
Muitas publicações surgiram com adjectivações semelhantes ao longo das décadas
seguintes. O Africano que circulou entre 1912 e 1914; um semanário chamado Missão
Africana ligado a missão N. Sra. do Rosário entre 1931 e 1940; e um semanário chamado
Voz Africana que começou a ser editado a 30 de Dezembro de 1932 e que nos anos 1970
permanecia em circulação.
Os desafios destes jornais eram contudo imensos: A falta de tipos, escassez de papel
era comum e era também comum os jornais trocarem não apenas de papel mas também de
dimensões. É neste contexto que surgem os irmãos Albasini, João e José fundaram dois
10
jornais O Brado Africano em 1908 e O Africano em 1919. O Africano mantinha uma página
do jornal redigida na língua Ronga, o que logo o tornou extremamente popular.
Quarta evolução: Entretenimento
Caracterizada pela adição de conteúdos cómicos aos jornais, banda desenhada,
horóscopos, programação televisiva e radiofónica, eventos de música, festivais, notícias de
fofocas, escândalos sociais, etc. porque nem todos os usuários de jornais pretendiam ler
notícias.
O tablóide sensacionalista apareceu pela primeira vez em Londres no início do século
XX, o tamanho permitia que pudesse ser lido com muito conforto, com muitas fotos, artigos
de notícias de entretenimento e sensacionalistas.
Quinta revolução: Galpão de ferramentas
A casa deixou de ser apenas o local para encontro familiar, dormir e servir de lar,
passou também a ser um local onde diversas ferramentas para comunicação estavam
disponíveis.
Em 1930, nos EUA apareceu o primeiro noticiário feito através da rádio por uma rede
radiofónica, a NBC que na época criou uma grande revolta da parte dos jornais que se
sentiram ameaçados e perderam muito lucro.
Noticias na televisão apareceram de duas fontes: cinejornais (noticiários exibidos nos
cinemas como uma espécie de trailer) e notícias de rádio, isto é, não existia a possibilidade
de poder se ver a notícia, apenas escutava-se o conteúdo; em outras palavras emissão
radiofónica pela televisão. O surgimento de imagens e voz na televisão veio pouco a pouco,
começando com imagens paradas. A partir de 1963 as emissões de noticiários passaram de 15
para 30 minutos e de preto e branco para transmissão a cor.
11
Sexta revolução: A auto-estrada.
Os primeiros noticiários sem o uso do papel (excluindo o jornal, rádio e televisão)
surgiram no final da década de 1970 através de serviços de base de dados online como o
prodigy, que foi desenhado para ser um jornal online nacional nos EUA.
Em 1995 oito das maiores companhias jornalísticas dos EUA que eram detentoras de
cerca de 185 jornais diários uniram-se para criar uma rede de jornais online nacional e
convidaram todos os jornais diários americanos a juntarem-se a eles, o objectivo anunciado
era de oferecer a venda de uma vasta variedade de informações: notícias, desporto, venda de
bilhetes, e-mail entre outros serviços.
No ano de 2002 os blogs já eram uma ferramenta poderosa para divulgação de
informação vinda de pessoas simples e não de grandes corporações e que já atraia massas
para a visualização do conteúdo apresentado (STUART, 2006).
O mesmo autor reporta o aparecimento de serviços de notícias como Wikinews
(2004), OhmyNews (2000) e Indymedia (1999) para a geração de notícias denominado por
open source news. O princípio destes open source news é de permitir que usuários possam
adicionar e modificar notícias autonomamente.
Esta última revolução da imprensa conscide com o período pós independência de
Moçambique que representa um marco importante no desenvolvimento da imprensa local e
subsídios acerca deste período apresentam-se colectados a partir de CHICAVA &
POHLMANN (2010).
“No ano de 1995 já existiam na Web cerca de 150 jornais e ocorreu uma renovação
do design das páginas de notícias, forte inclusão de multimédia, actualizações
frequentes de conteúdos e maior busca de lucro por meio de venda de notícias online
e o número de jornais online em todo o mundo era de 2959” (NOCI, 2013:253).
n
12
De forma breve, pode-se dizer que, durante quinze anos (1975-1990) o cenário da
imprensa em Moçambique foi marcado pelo controlo da imprensa por parte do partido
político dominante, pela censura e autocensura.
As principais lições que devem ser tiradas da apresentação e caracterização sucinta
dos meios de comunicação social actualmente existentes em Moçambique referem-se ao facto
de serem eminentemente urbanos e de estarem concentrados em Maputo.
Actualmente existem cerca de 7 estações de televisão com sinal aberto: TVM 1 e 2,
RTP-África, STV, TIM, TV Miramar, SIRT-TV, KTV, TV Maná. Em termos de radiodifusão
a Rádio Moçambique é a única com cobertura nacional e a única rádio pública do país
embora existem muitas outras rádios em todo o país.
No que toca a imprensa escrita existem três jornais diários de circulação nacional:
Notícias, Diário de Moçambique e O País (o de maior circulação nacional com 30.00
exemplares).
Grande parte da imprensa Moçambicana é difundida apenas em português e nos
últimos anos há uma tendência de migração para meios digitais de difusão de notícias
principalmente o estabelecimento de websites, algo que não está completamente adoptado
pelas agências de notícias.
Em síntese, os marcos mais marcantes que podem-se extrair das seis revoluções são a
criação da escrita nos anos 3100 AC, a invenção da máquina de Gutemberg que revolucionou
a impressão e o surgimento de serviços online de notícias a partir do final da década de 1970.
Enquanto que para o contexto moçambicano, é o aparecimento de diversos jornais por volta
do século XIX que posuiam como dificuldades principais a falta de tipos e escassez de papel;
13
na actualidade ocorre concentração dos medias nas zonas urbanas principalmente Maputo e
adopção deficiente de ferramentas onlines para publicação de notícias.
1.2. CARACTERIZAÇÃO EPISTEMOLÓGICA
Quando homens se comunicam usam-se vários meios para que possa ocorrer o
entendimento sendo um dos mais importantes a língua. Este tipo de comunicação vai além da
fala e da escrita em meios físicos. Com adopção de mecanismos digitais para comunicação,
nas ciências de computação surgiu uma área específica para o tratamento de informação
linguística o qual denomina-se Processamento de Linguagem Natural (PLN) ou Linguística
Computacional.
PLN é um campo da ciência de computação e linguística preocupado com a
interacção entre computadores e humanos (KUMAR, 2011). É objecto de estudo do PLN a
língua natural humana que é usada como parte do processo de comunicação e socialização.
O PLN tem como um dos seus principais objectivos fazer com que o computador
perceba o que o homem diz e escreve, o problema é que isto é muito complexo e necessita-se
de técnicas muito avançadas para que se possa lidar com linguagem humana.
O PLN possui muitas aplicações sendo algumas delas a seguintes, seguindo o
pensamento de KUMAR (2011):
 Sumarização Automática
 Geração de Linguagem Natural
 Compreensão de Linguagem Natural
 Reconhecimento Óptico de Caracteres
 Reconhecimento de Fala
 EI
14
 Simplificação de Texto
 Translação de Máquina
Dentro desta lista de aplicações que se apresenta, o que importa é a EI por isso, este
conceito será alvo de aprofundamento.
1.2.1. Extracção de Informação
A cada dia nasce a necessidade de se utilizar a informação de forma como se deseja e
esse desejo difere de período para período. Na actualidade a informação tende a apresentar-se
maioritariamente na forma digital e existe um grande desafio para o seu manejamento.
“Gerenciar e analisar dados sempre ofereceu grandes desafios para organizações de
todos os tamanhos e todo o tipo de industria” (HURWITZ, et al., 2013: 9) e para este
propósito existe uma área na computação designada EI que se dedica ao estudo e aplicação de
técnicas de EI bem como o seu aprimoramento e os diversos processos envolvidos.
“Extracção de informação refere-se a extracção automática de informação estruturada
como entidades, relacionamentos entre entidades e atributos descrevendo entidades de fontes
não estruturadas” (SARAWAGI, 2008:1).
“Extracção de informação é definido como qualquer método de análise de amplo
volume de textos desestruturados, normalmente na forma de linguagem natural e
automaticamente extrair informação destes textos para um modelo pré-definido”
(MUGELLINI et al., 2011: 155).
15
Pelo que, apresenta-se um conjunto de elementos que podem identificar a presença do
processo da EI ou a necessidade de implanta-lo:
CHANG et al. (2001) apresentam uma forma de categorização dos dados para facilitar
a sua classificação ou agrupamento:
 Estruturados: Como o caso de bases de dados e arquivos BibLATeX para
organização de referências biliográficas (ver figura 1).
 Semi-estruturados: Arquivos HyperText Markup Language (HTML) e XML.
 Desestruturados: Imagens, sons, texto e arquivos executáveis.
Figura 1: Arquivo BibLATeX mostrando informação bibliográfica sobre esta monografia. Fonte: Autor
Dados estruturados são os que possuem estrutura interna providenciando informação
semântica. São concebidos para que se possa extrair informação com facilidade pelo
computador; possuem características desenhadas e implementadas para que as regras e
procedimentos para a obtenção de informação sejam fácies de conceber e aplicar.
Os semi-estruturados geralmente apresentam tags de formatação como o caso de
HTML, se as tags facilitam informação sobre a estrutura do documento como em XML
pouco ou nenhuma informação semântica pode ser obtida, para além da estrutura de modo a
facilitar a troca de informação.
Há busca de informação, a resposta da busca é apresentada de forma desestruturada
como textos ou imagens, é impossível para humanos processar os dados por causa da
quantidade e computadores tem dificuldade de consultar a informação desejada
porque não estão armazenados de forma estruturada como uma base de dados.
(MOENS, 2006).
16
Dados desestruturados não são baseados em algum tipo de marcação ou estrutura
claramente perceptível e a obtenção de informação requer técnicas muito avançadas em
relação aos estruturados e semi-estruturados.
Apesar da existência da classificação acima apresentada é muito comum na literatura
e na internet que apenas dois tipos de dados sejam considerados: os estruturados e
desestruturados e estes incluem os semi-estruturados. Tendo em conta esta percepção, os
arquivos HTML, XML, documentos do Ms Word e documentos Portable Document Format
(PDF) são considerados como desestruturados em vez de semi-estruturados.
Por conseguinte, SARAWAGI (2008) considera quatro métodos de EI separados em
dois grupos a saber: sistemas codificados manualmente ou baseados em conhecimento e
baseados em regras ou estatístico.
Sistemas codificados manualmente ou baseados em conhecimento
Nos sistemas codificados manualmente pessoas definem as regras, expressões
regulares ou ainda fragmentos de programas para a EI. A pessoa a definir estas instruções
deve possuir conhecimentos especializados ou ser um programador, é nesta categoria que se
enquadra a proposta desta monografia.
Por outro lado, Quando se aplica expressões regulares o processo de definição de
regras pode ser custoso em termos de complexidade e do tempo e isso também requer um
Dados desestruturados não possuem estrutura como colunas e tabelas, uma
estrutura representada em árvore [estrutura hierárquica] ou classes e tipos [como
no caso de bases de dados orientados a objecto]. Exemplos de dados
desestruturados são documentos, imagens (fotos, diagramas e images), áudio
(som, discursos e música), vídeo (filme, animação) [sic], texto, e-mails e
websites da internet (RAINARDI, 2007).
17
conhecimento maduro do programador principalmente como as expressões regulares são
implementadas numa determinada linguagem de programação.
De igual modo, elas possuem outra limitação que é de serem realmente úteis para o
processamento de texto, FITZGERALD (2012) diz que as expressões regulares são
sequências de texto especialmente utilizadas como padrão para encontrar cadeias de texto.
Elas podem ser utilizadas para verificar se um determinado input corresponde a um padrão,
substituir texto que condiz com um padrão ou para dividir um bloco de texto em partes mais
pequenas (LEVITHAN & GOYVAERTS, 2009).
Contrariamente aos sistemas codificados manualmente, os baseados em conhecimento
necessitam de exemplos rotulados manualmente para treinar modelos de aprendizagem para
extracção. De modo que estes sistemas funcionem, é necessário que o usuário introduza um
conjunto de dados de treinamento e dali ele passará a realizar as tarefas de forma
independente, periodicamente é possível que cometa erros, se tal ocorrer mais treinamento
pode ser necessário.
Sistemas baseados em regras ou estatísticos
Os sistemas baseados em regras são mais fáceis de interpretar e desenvolver em
relação aos métodos estatísticos porque estes são mais apropriados a dados desestruturados
(complexos), “os métodos de extracção baseados em regras são definidos por regras fixas de
extracção enquanto que métodos estatísticos baseiam-se em probabilidades” (DENECKE,
2012: 37).
Consequentemente, sistemas baseados em regras são mais úteis onde a interacção
humana é constante. As regras podem ser provenientes de sistemas baseados em exemplos
(neste caso a criação das regras pode ser de forma automática).
18
As regras são especialmente importantes quando há tarefas como por exemplo
extracção de código postal e email, e são mais rápidos e mais fáceis de optimizar; para estes
sistemas é possível ter uma base de dados contendo regras de como o sistema deve extrair
informação e é possível actualizar o sistema para albergar ainda mais regras.
Quanto maior for o número de regras mais recursos computacionais serão necessários
e isso tem efeito directo no poder de processamento da informação que se pretende obter. Em
domínios abertos como extracção de acontecimentos, factos, extracção de voz ou extracção
de opiniões a partir de blogs é necessário implementar métodos estatísticos.
ZHANG (2008) afirmam que existem três tarefas básicas no processo de EI que são:
Extracção de entidades nomeadas, extracção de relações e extracção de eventos.
Extracção de entidades nomeadas
Devido a necessidade de se fazer compreensível o que é extraido, colocando a
informação em categorias bem claras para simplificar a compreensão ou para que seja
facilmente utilizada por programas de computador para um fim específico ou por uma
máquina adaptada para algum propósito surge o conceito de entidades nomeadas.
Segundo OLSSON (2008) o reconhecimento de entidades nomeadas é a tarefa de
identificar e categorizar referências textuais a objectos no mundo tais como pessoas,
organizações, companhias e locais. Observe a tabela a seguir para melhor esclarecimento.
Campo Descrição
Empresa Goolge
Apelido Page
Cargo Engenheiro de Software
Tabela 1: Exemplo fictício de entidades extraídas sobre um funcionário da Goolge. Fonte: Autor.
19
“O reconhecimento de entidades é uma das tarefas mais importantes do campo de
Extracção de Informação e se passou a denominar Reconhecimento de Entidades Nomeadas e
sua classificação (NERCI)” (SEKINE & RANCHHOD, 2009:3).
A extracção de entidades tem como objectivo decidir quando é que um grupo de
palavras [designadas alvo] podem ser consideradas partes de uma entidade nomeada
(MINER, etal., 2008) de tal modo que ela possui um grande papel no processamento de
linguagem natural em áreas como busca de informação, sistemas de provimento de respostas,
sumarização automática, etc. (GHOSH, 2009).
Extracção de relações
Muitas vezes ocorre a nrecessidade de se compreender como é que diferentes objectos
ou entidades no mundo real se relacionam, é nesta ordem de ideia que o termo extracção de
relações ganha sentido.
Quando se fala de relações, basicamente está a se discutir as relações semânticas entre
conceitos ou entidades existentes em documentos textuais, palavras chaves, e tags geradas em
sistemas de marcação [como XML], isto segundo GREENBERG (2008). O objectivo da
extracção de relações é a tarefa de reconhecer a afirmação de uma relação entre duas
entidades ou mais (BANKO citado por ÖZYER et al., 2013), um exemplo de uma frase de
onde pode-se extrair a relação expressando paternidade (pai e filho) é: Fernando é pai do
António.
A descoberta de relacionamento entre palavras pode ser onerosa porque requer
“muitos exemplos de treinamento” ÖZYER (2013: 50) como efeito, este processo pode ser
tedioso para grandes quantidades de dados como dezenas de milhares de documentos.
.
20
Por coneguinte, é necessário adoptar mecanismos de aprendizagem automaticos e
dinâmicos, e neste sentido surge o conceito de “extracção de relação implícita e explícita”
ÖZYER (2013: 50), onde as relações explícitas dependem de treinamento manual enquanto
os implícitos baseiam-se na aprendizagem autónoma.
Independentemente do tipo de relação a ser extraído os seguintes aspectos devem se
ter em conta na perspectiva de GREENBERG (2008):
 Um conjunto de dados com relações semânticas para serem extraídas.
 Um contexto linguístico onde a relação existe.
 Algoritmos para execução automática de processamento das operações.
Extracção de eventos
Ela é amplamente usada para estudos sobre ocorrências de acidentes, ataques
terroristas, estudo de percepção de nível de criminalidade, uso de álcool, compreensão de
hábitos de determinados grupos de pessoas e é também aplicada em áreas da ciência como
Medicina, Biologia, Historia, Informática, etc.
A extracção de eventos tem como propósito extrair eventos a partir de uma
determinada fonte de informação sendo a tradicional notícias e ultimamente as redes sociais
como Facebook, Twitter, LinkedIn entre outros serviços similares conforme ilustra a tabela
seguinte baseado num caso feiticio.
Tabela 2: Exemplo de eventos de três usuários do Facebook. Fonte: Autor.
Identidade Evento Data Hora
João Dançar 22/08/2014 18:15
Mário Rezar 13/08/2014 11:00
21
“Formalmente, a tarefa de extracção de eventos é de automaticamente identificar
eventos em textos e prover informação detalhada como quem realizou o evento, quando, com
que instrumentos, onde e possivelmente porquê” (KAPETANIOS et al. 2008: 207).
A extracção de eventos foi definida como a principal tarefa na extracção automática
de informação (MAO & WENG, 2012), contudo ela não tem sido muito estudada e
implementada como as outras duas tarefas da EI por causa do nível de complexidade que esta
tarefa requer e “[os eventos] geralmente são expressos de forma indirecta [ e ] conhecimento
linguístico [demasiadamente] profundo é necessário” (FILLMORE citado por ZHANG,
2008). Para que a actividade de extrair eventos seja bem sucedida muitas é necessário
identificar entidades e relações, tornando o processo mais complexo.
1.2.2. Extracção de informação na Web
Não existe melhor fonte de informação que a web porque é o local onde muitas
pessoas guardam informação pessoal, em formatos distintos de arquivos tais como texto,
vídeo, imagem, arquivos de áudio, etc.
Segundo O'REGAN (2012) a World Wide Web (WWW) ou simplesmente web foi
inventada por Tim Berners-Lee na European Organization for Nuclear Research (CERN) no
ano de 1990 na Swiça. O aparecimento da web foi praticamente uma revolução e transformou
a internet (a rede mundial de computadores), um dos mais importantes meios de comunicação
jamais criado pelo homem (talvez o mais importante).
O mesmo autor afirma que o que torna a web revolucionária em relação a outros meio
de comunicação são os seguintes aspectos:
 Nenhuma organização controla a web
 Nenhum computador controla a web
 Milhões de computadores estão interconectados
22
 É um mercado para milhões de usuários.
 A web não se encontra localizado em um local físico.
 A web é um espaço e não um local físico.
As páginas web são desenvolvidas com a linguagem de programação HTML cuja a
última versão é HTML5 baseda no XML que basicamente é constituída por cerca de pouco
mais de uma centena de tags que permitem estruturamento de páginas e definição de
formatação. O protocolo responsável pela comunicação na internet é Hypertext Transfer
Protocol (HTTP), o qual está por detrás de todas requisições de páginas web como expõe
WONG (2001:1) “a web serve para distribuir informação sobre a internet”. Veja na figura 2
exemplo de uma transação HTTP.
Figura 2: Exemplo de uma transação HTTP. Fonte: SHIFLETT (2003).
Para se ter uma ideia mínima de como a internet é usada por pessoas BOONE
& KURTZ (2014) afirmam que o número de usuários da internet é de cerca de 2.7 bilhões de
pessoas, portanto mais de um terço da população mundial, com este número de usuários a
internet torna-se na maior base de dados possuindo todo o tipo de informação sobre as
pessoas, daí a fonte mais apetecível para obter informação só pode ser ela.
23
Outro motivo para justificar a necessidade de EI na web é o facto de os navegadores
possuírem limitações na exploração de conteúdo da web; o que estas ferramentas fazem é
permitir visualização de forma compreensível do conteúdo para que ocorram facilidades na
compreensão de informação por humanos e não computadores.
SCHRENK (2012) descreve algumas das limitações que os navegadores apresentam
que não faculta o processo de EI:
 Não permitem filtrar informação de acordo com a sua relevância
 Não podem interpretar o que eles processam online
 Não podem agir por conta do usuário na obtenção de informação
As limitações apresentadas no parágrafo anterior podem ser ultrapassadas atravês da
criação de aplicações que se baseando na estrutura das páginas web ou na informação que
eles transportam possam adquirir um certo tipo de conteúdo e organiza-los de maneiras que
os usuários desejam, este é um passo positivo na exploração da internet; ferramentas que
fazem essa tarefa possuem muitas denomições técnicas, entre elas: screen scraper e web
scraper.
A melhor forma de compreender o que significa web craping é: automação do
processo de copy e paste de documentos da web, realizando as mesmas acções que um
humano pretende tais como clique de links, escolha do tipo de informação que se deseja,
descarregamento de arquivos, preenchimento de formulários, etc.
MITCHELL (2013) diz que web scraping é um processo automatizado que involve
parsing (análise) de dados para se obter a informação desejada. O web scraper (ferramenta
que executa o web scraping) muitas vezes deve conhecer a estrutura da página web da qual
ela irá obter a informação. Em numerosos casos as páginas web apresentam um padrão na
24
forma como se estrutura o conteúdo, no caso de um web scraper codificado manualmente
esta é uma das chave do sucesso destas ferramentas.
A tarefa de conceber web scrapers tem sido simplificada por depuradores de páginas
web, que facilitam em muito o entendimento das páginas web através da possibilidade de
visualização do código fonte e inspecção dos seus elementos. Para a solução a ser proposta
nesta monografia, faz-se uso da ferramenta denominada Chrome Developers Tool (DevTools)
que serve para depuramento de aplicações web.
Existem algumas tecnologias muito usadas para EI na web que são: Xpath, expressões
regulares e selectores CSS. Se um desenvolvedor desejar por algum motivo estudar o código
fonte sem recurso a ferramentas sofisticadas criadas para este processo, o ele pode elaborar as
árvores Document Object Model (DOM) em representação de código HTML, todavia este é
um procedimento não recomendável por causa da possibilidade de cometer erros que é muito
ampla.
Como já tinha sido referido anteriormente, a EI na web está se tornando muito
comum, as ferramentas usadas cada vez mais poderosas; ela também apresenta desafios
muito grandes, que por sinal são as suas próprias características e lhe garantem o poder que
tem, XU et al. (2010) apontam as seguintes:
 Em primeiro lugar, as tags nas páginas web servem para melhorar a apresentação do
conteúdo e não a semântica. Sendo assim, são mais apropriados para humanos do que
para máquinas ou programas de computadores.
 Segundo, páginas diferentes apresentam informação de formas diferentes.
 Terceiro, nas páginas web há espaços onde há publicidade, links de navegação,
resultados recomendados, feeds de redes sociais, etc.
25
 Por último, é possível que páginas com o mesmo padrão possam não apresentar os
mesmos atributos.
Problema ainda maior que os apontados acima é que muitos websites são concebidos
por pessoas com poucos conhecimentos técnicos em desenvolvimento ou engenharia de
aplicações web e não seguem cuidadosamente os princípios de design e programação das
diversas tecnologias web cometendo “erros graves”, interessando-se apenas com o resultado
que o navegador exibirá; olhando as coisas nesta perspectiva é racionalmente aceitável
concluir que estes problemas dificilmente poderão desaparecer por causa do “abuso” das
enormes facilidades existentes para construir páginas web e faze-las acessíveis na internet.
STUART (2006) apresenta uma taxonomia para classificação das ferramentas de EI
na web das quais as seguintes serão alvo de abordagem: linguagens para desenvolvimento de
wrappers (programas para EI), ferramentas com conhecimento de HTML, ferramentas
baseadas em PLN e ferramentas de indução de wrappers.
Linguagens para o desenvolvimento de wrappers
Uma das primeiras soluções para o endereçamento do problema de geração de
wrappers foi o desenvolvimento de linguagens específicas para ajudar os usuários a
conceberem wrappers. Estas linguagens foram propostas como alternativas a linguagens de
propósito geral como Java e Perl que já realizavam esta tarefa a bastante tempo, algumas das
linguagens para este propósito são: Minerva e WebOQL.
Ferramentas com conhecimento de HTML
Constam deste grupo ferramentas que se baseiam na estrutura do HTML para
realizarem a EI, antes de começarem a realizar as tarefas estas ferramentas transformam as
páginas web em árvores para análise (parsing tree), uma representação que reflecte a
26
hierarquia de tags HTML, como o caso da livraria a Simple HTML DOM, a ser utilizada na
elaboração da proposta.
Ferramentas baseadas em PLN
O PLN é usado por diferentes ferramentas para aprendizagem das regras de extracção
para EI em documentos de linguagem natural, estas ferramentas usam regras baseadas em
análise sintáctica e semântica que ajuda a identificação de informação relevante em
documentos.
Ferramentas de indução de wrapper
Estas ferramentas geram regras de extracção a partir de treinamento por um conjunto
de exemplos. A diferença entre estas ferramentas e as baseadas em PLN é que estas não
precisam de informação sobre o PLN, mas sim informações que os mesmos apresentam que
implicitamente delimitam a estrutura dos dados encontrados.
Neste capítulo, a tendência histórica da a entender que o surgimento dos primeiros
serviços online de notícias ocorreu a partir do final da década de 1970 que culminou com o
surgimento de ferramentas designadas open source news e blogs nos anos 2000 bem como
melhoramentos no design dos websites de notícias neste período, enquanto que em
Moçambique a adopção destas ferramentas é lenta na actualidade. Por outro lado, a
caracterização epistemológica argumenta que a EI possui 4 métodos sendo a codificação
manual implementado pelo sistema proposto para a monografia, e também fornece uma
taxonomia para classificação de ferramentas de EI onde introduz-se conceitos como
ferramentas para o desenvolvimento de wrappers, ferramentas com conhecimento de HTML,
ferramentas baseadas em PLN e ferramentas de indução de wrappers.
27
CAPÍTULO 2. DESENVOLVIMENTO DA PROPOSTA: WEB SCRAPER DE
NOTÍCIA PARA DISPOSITIVOS MÓVEIS
Neste capítulo apresenta-se a menção das fontes de notícias utilizadas incluindo uma
breve descrição de cada uma delas, requisitos funcionais e não funcionais do sistema, os
diferentes diagramas da Engenharia de Software, a arquitectura do sistema baseada na
abstracção de três camadas, a implementação (apresentação das ferramentas tecnológicas
empregues) divididas em front end e back end e por último o manual do usuário.
2.1. FONTES DE NOTÍCIAS
As fontes de notícias são os websites usados para fornecimento de conteúdo por este
sistema que numa primeira altura buscará notícias de cinco fontes. Mais fontes podem ser
adicionadas além das actuais, desde que estejam ligadas a órgãos de informação sérios cujo
conteúdo seja frequentemente actualizado e reúnam consenso por parte do desenvolvedor
e/ou usuários.
É necessário apresentar esclarecimento sobre as fontes porque isto ajuda de certa
forma a dar conhecimento sobre o tipo de notícia que o usuário terá acesso e este
esclarecimento pode servir de referência para introdução de mais funcionalidades e outras
fontes de notícias. Após o provimento de alguma informação acerca de cada fonte fornece-se
a Uniform Resource Locator (URL) utilizada para extrair notícias recentes no website de cada
fonte.
28
Agência de Informação de Moçambique (AIM)
É uma agência que pertence ao estado Moçambicano com o fim de produzir
informação diversificada para a sociedade moçambicana, ela faz publicações na língua
portuguesa e inglesa. A sua sede encontra-se localizada na cidade de Maputo, na capital
Moçambicana e a URL desta fonte é: http://noticias.sapo.mz/aim/.
A verdade Online
É um jornal online moçambicano, criado com o intuito de difundir informação a
sociedade moçambicana tendo como uma das características oferta de conteúdo grátis e sem
publicidade ao público-alvo. O grupo que gere este jornal é uma organização sem fins
lucrativos que semanalmente imprime milhares de exemplares e os distribui por diversas
áreas de Moçambique. A sua sede encontra-se localizada na capital moçambicana Maputo,
esta fonte esta disponível nesta URL: http://www.verdade.co.mz/newsflash/.
Jornal Notícias
É um jornal privado de circulação nacional propriedade do grupo Sociedade do
Notícias, SA. Como as outras fontes de notícias é um dos jornais mais lidos de Moçambique
na sua forma física, com conteúdo de bastante qualidade. O website do jornal notícias
localiza-se pela seguinte URL: http://www.jornalnoticias.co.mz/.
Sapo Notícias
Este é um website informativo do portal Sapo Moçambique que providencia
informação diversificada. O Sapo é um dos maiores grupos de media digital de Moçambique
e o seu portal é um dos mais visitados. Parte do conteúdo desta fonte são do website do jornal
O País pertencente a um dos maiores jornais em circulação em Moçambique denominado O
29
País que é propriedade do principal grupo de imprensa local, o grupo Sociedade Independente
de Moçambique (SOICO), esta fonte é acessada a partir da URL: http://noticias.sapo.mz/.
Portal do Governo de Moçambique
Este é oficialmente o portal do Governo da República de Moçambique, um projecto
que é gerido e desenvolvido pelo Instituto Nacional de Tecnologias de Informação e
Comunicação de Moçambique em conjunto com outros ministérios e instituições
governamentais contendo informação diversificada acerca do governo moçambicano e de
Moçambique, na sua maioria os conteúdos noticiosos são acerca do país. Esta fonte pode ser
localizada visitando a URL: http://www.portaldogoverno.gov.mz/news/.
2.2. ENGENHARIA DE REQUISITOS
Os requisitos de um sistema permitem a descrição do que o mesmo deve fazer, não
deve fazer e como ser feito. Tendo em vista a necessidade da sua especificação, os mesmos
apresentam-se divididos em duas categorias que são funcional e não funcional, portanto “o
processo de procurar, analisar, documentar e fazer a verificação dos diversos serviços a serem
implementados e as suas restrições denomina-se engenharia de requisitos”
(SOMMERVILLE, 2011).
2.2.1. Requisitos funcionais
Os requisitos funcionais (RF) são especificações do que o software deve ou não fazer
e exprimem funcionalidades, os mesmos estão apresentados abaixo nas suas respectivas
tabelas, divididos em duas categorias nomeadamente: interface do usuário e apresentação do
conteúdo e serviços a serem oferecidos ao usuário.
30
Ref. Requisito
RF 01 -Na página inicial deve aparecer uma lista com o nome das fontes de notícias
incluindo uma imagem que os identifica no lado esquerdo.
RF 02 -O sistema deve possuir uma barra de ferramentas no topo de cada página que
possuirá botões de navegação excepto para a página inicial.
RF 03 -Em todas as páginas deve haver um mecanismo de acesso a página inicial
(preferencialmente botões presentes na barra de ferramentas).
RF 04 -O usuário deve ser providenciado com pouca informação (apenas o essencial)
para evitar distracção e perca de foco.
RF 05 -O conteúdo deve ser de boa visibilidade (letras e imagens claramente visíveis).
RF 06 -A interface deve ser desenvolvida primeiramente para dispositivos móveis
(mobile first development) com telas sensíveis a toque, mas deve adaptar-se
visualmente a electrônicos da categoria Personal Computer (PC) através do
emprego do responsive design.
RF 07 -A interface do sistema deve ser leve de modo a minimizar ao máximo possível
o tempo do carregamento das páginas.
RF 08 -No caso de algum erro o sistema não deve apresentar detalhes técnicos
referente a causa do problema, uma mensagem curta será fornecida.
RF 09 - Quando o conteúdo demorar carregar por algum motivo deve-se apresentar
uma animação ao usuário para o mesmo compreender que o carregamento da
página ainda continua.
Tabela 3: Interface gráfica do usuário e apresentação do conteúdo. Fonte: Autor
31
Ref. Requisitos
RF 10 - O usuário deve possuir a possibilidade de pesquisar as fontes de notícias que
pretende acessar de modo a facilitar a sua localização; esta funcionalidade deve
estar presente na página inicial.
RF 11 -O sistema deve buscar as últimas noticias de cada fonte de informação e fazer
a entrega ao usuário sem que este influencie de forma alguma como este
processo ocorre.
RF 12 -O aparecimento de novo conteúdo deve depender inteiramente de terceiros
porque os mesmos é que produzem as notícias.
RF 13 - O usuário deve ter acesso a visualização da lista de notícias para cada uma das
fontes.
RF 14 -Caberá ao usuário escolher que notícia pretende ler e por quanto tempo.
RF 15 -O sistema deve apresentar um campo para que o usuário possa ter
oportunidade de fazer comentários sobre a notícia que lê por meio de alguma
rede social (Facebook).
RF 16 -O servidor não deve armazenar informação a não ser arquivos de código fonte
do sistema pois o objectivo é de servir de intermediário entre o usuário e as
fontes de notícias.
RF 17 -Nenhum tipo de input será providenciado ao usuário (textfieds, radioboxes,
etc.) para além do campo de pesquisa e comentários.
RF 18 -No final de todas as páginas deve haver links que permitam o usuário ter
acesso a informação sobre o website (acerca e contactos)
Tabela 4: Serviços a serem oferecidos ao usuário. Fonte: Autor.
32
2.2.2. Requisitos não funcionais
Diferentemente dos RF, os requisitos não funcionais (RNF) estão apresentados em
categorias mais detalhadas devido a complexidade da sua implementação e da relevância que
os mesmos possuem sobre o sistema, eles representam aspectos cuja não implementação pode
por em causa a usabilidade do sistema; daí uma categorização refinada possibilita o seu
esclarecimento e compreensão, bem como a possibilidade de implementação dos RF.
Por conseguinte, estes requisitos encontram-se divididos nas categorias a mencionar:
componentes de software e linguagem de programação, performance, ferramentas de
desenvolvimento, licença, interface de comunicação, uso do produto, armazenamento de
informação, segurança, fontes de notícias, acesso, hospedagem e outros RNF. Os quais
explicam-se a seguir nas suas devidas tabelas.
Ref. Requisitos
RNF 01 A parte de back end deve ser desenvolvida implementando a linguagem de
programação PHP5.
RNF 02 O processo de extracção de notícias deve ser garantido pela livraria Simple
HTML DOM.
RNF 03 A parte de front end deve ser implementada usando as linguagens HTML5,
CSS3 e Javascript incluindo a utilização da livraria Jquery mobile.
RNF 04 A parte responsável pelo acesso a rede e os documentos HTML deve ser
implementada com auxílio da extensão cURL para a linguagem PHP.
Tabela 5: Componentes de software e linguagem de programação. Fonte: Autor.
33
Ref. Requisitos
RNF 05 Poucos pedidos HTTP devem ser feitos pelos dispositivos clientes ao servidor
de modo a minimizar o tráfego e consequentemente melhor performance, isto
será possível através da minimização do número de scripts a serem produzidos
(no máximo três arquivos de código fonte PHP para cada fonte de informação).
RNF 06 Cada página deve idealmente levar no máximo seis segundos ou menos a
carregar
RNF 07 Durante a conexão a sites externos deve haver suporte de redireccionamento no
número máximo de quatro (4).
RNF 08 Para reduzir o tempo de descarregamento de dados deve-se implementar o
prefetch2
para todos as âncoras presentes em todos arquivos de código fonte.
RNF 09 A performance dependerá em muito da conexão do dispositivo que se conectará
a internet e da disponibilidade dos serviços de notícias a serem acessados.
RNF 10 A performance dependerá em muito de componentes de hardware do servidor e
dos clientes.
RNF 11 O tempo de execução das páginas em muito dependerá das capacidades do
navegador em relação ao nível de suporte destas tecnologias: javascript, Ajax e
CSS3.
Tabela 6: Performance. Fonte: Autor.
Ref. Requisito
RNF 12 O código fonte a ser produzido será feito com a ferramenta para
desenvolvimento Aptana Studio ou Sublime text.
2
Prefetch: Pré carregamento de páginas web, antes do usuário as requisitar por meio de um click de link ou
acção equivalente.
34
RNF 13 O sistema operativo na fase de desenvolvimento deve ser o Windows 7 Ultimate
Edition.
RNF 14 A análise do desempenho dos scripts e tempo de carregamento de páginas será
com o auxílio da ferramenta DevTools.
Tabela 7: Ferrementas de desenvolvimento. Fonte: Autor
Ref. Requisito
RNF 15 A licença sobre qual o software está sujeito é o apache license, sendo o código
fonte aberto e deverá ser acessível por meio do Github3
após a conclusão da
implementação do projecto.
Tabela 8: Licença. Fonte: Autor.
Ref. Requisito
RNF 16 O sistema durante a comunicação utilizará o protocolo http
RNF 17 A porta a ser utilizada para as comunicações é 80
Tabela 9: Interface de comunicação. Fonte: Autor.
Ref. Requisito
RNF 18 Para uso do sistema o usuário não precisa de treinamento, sendo suficiente o
conhecimento elementar do uso do computador e navegação de páginas da
internet.
Tabela 10: Uso do produto. Fonte: Autor.
3
https://github.com/Manguena/webscraperdenoticiasmono/
35
Ref. Requisito
RNF 19 Não deve-se armazenar nenhum tipo de informação sensível do usuário (e-mail,
número de telefone, endereço IP, etc.).
Tabela 11: Armazenamento de informação. Fonte: Autor
Tabela 12: Segurança. Fonte: Autor
Ref. Requisitos
RNF 21 As fontes de notícia devem ser websites de informação que apresentam o seu
conteúdo utilizando a linguagem de programação HTML, de preferência a sua
última versão (HTML5).
RNF 22 As páginas web das fontes de notícia serão analisadas utilizando a ferramenta
de desenvolvimento DevTools.
RNF 23 O sistema deve ser construído de forma a facilitar a inclusão ou remoção de
outras fontes de notícias no futuro.
Tabela 13: Fontes de notícias. Fonte: Autor.
Ref. Requisito
RNF 24 Pessoas de qualquer idade e de qualquer parte do mundo podem acessar o
sistema por mais que o foco sejam cidadãos moçambicanos.
RNF 25 O sistema deve estar acessível a 99.999% do tempo.
Ref. Requisito
RNF 20 A princípio, devido a natureza deste sistema a segurança deve estar no servidor
onde ele será hospedado.
36
RNF 26 O tempo de timeout para a conexão a servidores externos para busca de notícias
é de 10 segundos
Tabela 14: Acesso. Fonte: Autor
Ref. Requisito
RNF 27 A hospedagem deve ser feita em servidores da internet que operam algum
sistema operativo da família Linux.
RNF 28 Os servidores para hospedagem devem ser Ngix ou Apache.
Tabela 15: Hospedagem. Fonte: Autor
Ref. Requisito
RNF 29 Fontes a serem usadas devem ser web safe fonts.
Tabela 16: Outros RNF. Fonte: Autor.
2.3. DESENHO DO SISTEMA
Em relação ao desenho do sistema, apresenta-se um conjunto de diagramas da
Engenharia de Software que posteriormente determinarão como o processo de implementação
decorrerá. Todos os diagramas foram criados utilizando a aplicação online denominada
Creately4
.
2.3.1. Diagrama de caso de uso
De uma forma simples o diagrama de caso de uso descreve as funcionalidades de um
sistema ilustrando o escopo e os cenários em que o mesmo interage com diversos actores.
Para este sistema, um diagrama de caso de uso (ver figura 3) é suficiente para ilustrar os
4
https://creately.com/
37
actores e os diferente cenários onde os mesmos estarão envolvidos. A descrição textual dos
casos de uso é considerada como sendo muito importante, por isso após o diagrama tem-se a
sua respectiva especificação.
Figura 3: Diagrama de caso de uso indicando acesso e fornecimento de notícias. Fonte: Autor.
Especificação dos casos de usos
Caso de uso: Ver listas de notícias de cada fonte.
 ID: 1.
 Breve descrição: Ver a lista de notícias recentes que cada fonte de notícia possui de
modo que o usuário escolha que notícia pretende ler.
 Actores primários: Internauta.
 Actores secundários: Nenhum.
 Pré-condição: O usuário escolhe a fonte de notícia de onde pretende se informar.
38
 Fluxo de eventos principais:
1. Da página inicial o usuário escolhe a fonte de notícia que pretende.
2. O item seleccionado ou clicado pelo usuário ganha foco por alguns
milissegundos.
3. Uma animação indicando carregamento de página aparece.
4. O sistema vai para o website correspondente a fonte de notícia e busca os
últimos títulos de notícias.
5. O sistema preenche a lista com os títulos das últimas notícias para o usuário.
 Pós-condição: O usuário tem acesso a lista de notícia actualizada para cada fonte de
notícia.
 Fluxo alternativo:
 Nenhum.
Caso de uso: Pesquisar fonte de notícia
 ID: 2
 Breve descrição: O usuário pesquisa as fontes de notícias de modo a escolher de que
fonte ele pretende estar informado.
 Actores primários: internauta.
 Actores secundários: nenhum.
 Pré-condição: o usuário deve estar na página inicial do sistema.
 Fluxo de eventos principais:
1. O usuário digita o endereço do website do sistema no navegar do seu
dispositivo móvel.
2. O usuário escolhe o campo de pesquisa.
39
3. O usuário escreve o texto que pretende pesquisar e pressiona o botão de
pesquisa ou pressiona a tecla enter.
4. O sistema proporciona uma lista de fonte(s) de notícia(s) de acordo com a
pesquisa efectuada pelo usuário.
 Pós-condição: O sistema lista as fontes de notícias consoante a pesquisa.
 Fluxo alternativo:
 Após a introdução do texto que pretende pesquisar, o usuário pode optar por
cancelar a pesquisa pressiondo o botão “X”, daí o sistema lista todas as fontes
de notícias
 Se o usuário não pretender fazer pesquisa das fontes das notícias o mesmo
pode aceder directamente o conteúdo da fonte a partir da lista providenciada
na página inicial.
Caso de uso: Obter informação sobre o sistema.
 ID: 3.
 Breve descrição: O usuário obtém informação sobre o(s) desenvolvedor(es) do
sistema e o próprio sistema (contacto, objectivo do sistema e descrição do mesmo).
 Actores primários: Internauta.
 Actores secundários: Nenhum.
 Pré-condição: O usuário deve visitar qualquer página do sistema.
 Fluxo de eventos principais:
1. O usuário visita a página do sistema que pretende.
2. O usuário navega para o final da página.
3. Escolhe que tipo de informação que pretende.
4. O usuário lê a informação disponibilizada pelo sistema.
 Pós-condição: O sistema apresenta a informação pretendida pelo usuário.
40
 Fluxo alternativo:
 Nenhum.
Caso de uso: Fazer comentários
 ID: 4
 Breve descrição: O usuário posta comentários sobre a notícia que lê no widget
providenciado do Facebook.
 Actores primários: Internauta.
 Actores secundários: Nenhum.
 Pré-condição: O usuário deve estar na página de notícias e ter feito login na sua conta
da rede social Facebook.
 Fluxo de eventos principais:
1. O usuário acessa a notícia que deseja ler.
2. O usuário selecciona o campo de comentários no Facebook.
3. O usuário escreve o comentário que pretende deixar no website, pressiona o
botão de comentário ou a tecla enter.
4. O comentário fica visível a outros leitores de notícias.
 Pós-condição: comentário apresentado.
 Fluxo alternativo:
 Nenhum
Caso de uso: Acessar notícias.
 ID: 5.
 Breve descrição: O usuário acede as notícias de modo a ler o seu conteúdo e manter-
se informado.
 Actores primários: Internauta.
41
 Actores secundários: Nenhum.
 Pré-condição: O usuário deve escolher a notícia que deseja ler a partir da lista de
títulos de notícias de acordo com a fonte.
 Fluxo de eventos principais:
1. O usuário selecciona a notícia que pretende a partir da lista actualizada de
notícia para uma determinada fonte.
2. O sistema faz a devida busca da notícia e extracção de todo conteúdo
necessário.
3. Ocorre a apresentação da notícia.
 Pós-condição: A notícia é apresentada ao usuário.
 Fluxo alternativo:
 O usuário pode voltar a acessar a lista de notícias através do botão que se
encontra no topo da página no lado direito.
 O usuário pode aceder a página inicial através do botão que se encontra no
topo da página no lado esquerdo.
Caso de uso: Fornecer notícias.
 ID: 6.
 Breve descrição: A fonte de notícia é que produz e publica as notícias que serão
acessadas no sistema.
 Actores primários: fonte de notícia.
 Actores secundários: nenhum.
 Pré-condição: A fonte de notícia deve ser acessada pelo sistema.
 Fluxo de eventos principais:
1. Include („Produzir notícia‟).
2. Publicar as notícias na internet.
42
 Pós-condição: As notícias publicadas ficam acessíveis na internet para os internautas
e são extraidas pelo sistema.
 Fluxo alternativo:
 Nenhum.
Caso de uso: Disponibilizar notícias.
 ID: 7.
 Breve descrição: O sistema é que disponibiliza ao usuário notícias a partir da fonte.
 Actores primários: Sistema.
 Actores secundários: Nenhum.
 Pré-condição: Acessar o website do sistema e aceder as notícias.
 Fluxo de eventos principais:
1. Include („Fornecer notícia‟).
2. O sistema busca notícias na fonte por requisição de cada usuário, utilizando os
algoritmos que ele possui para cada fonte.
 Pós-condição: O sistema extrai com sucesso a notícia e faz o processamento
adicional.
 Fluxo alternativo:
 Nenhum.
Caso de uso: Aceder fontes de notícias.
 ID: 8.
 Breve descrição: O usuário possui a possibilidade de aceder a fonte da notícia que ele
lê.
 Actores primários: Internauta.
 Actores secundários: Nenhum.
43
 Pré-condição: Acessar o website do sistema e aceder as notícias.
 Fluxo de eventos:
1. O usuário acessa a página de notícias.
2. O usuário pressiona no link que lhe direccionará ao website correspondente a
fonte da notícia que o mesmo estiver a ler.
 Pós-condição: O usuário acede com sucesso a fonte de notícia.
 Fluxo alternativo:
 Nenhum.
2.3.2. Diagrama de deployment
O diagrama de deployment modela a arquitectura física do sistema e pode ser
visualizado na figura a abaixo, nele está patente o relacionamento entre os componentes de
software e hardware e a distribuição física do processamento.
Figura 4: Diagrama de deployment do sistema. Fonte: Autor
No diagrama existem três nós: um que corresponde ao cliente, o sistema e a fonte de
notícia consecutivamente. Na parte do cliente ele precisa de um navegador para poder se
44
comunicar com o sistema através da conexão sobre o protocolo HTTP na porta 80 que se
encontra hospedado em um servidor web com PHP5.x e faz as a entrega das requisições do
usuário através de busca de informação num terceiro servidor (fonte de notícia) extraindo
conteúdo de páginas HTML, sendo também a conexão efectuada sobre o protocolo HTTP na
porta 80.
2.3.3. Diagrama de componentes
O diagrama de componentes é utilizado para modelar aspectos físicos do sistema
como livrarias, executáveis, arquivos, documentos, etc. aplicado para a visualização da
organização e relacionamento entre os diferentes componentes do sistema, este diagrama
também pode ser descrito como uma visão estática da implementação de um sistema. A
implementação estática representa a organização dos componentes num momento particular,
conforme pode-se observar na próxima figura.
Figura 5: Diagrama de componentes ilustrando a dependência entre diferentes componentes do sistema. Fonte: Autor.
45
Este diagrama apresenta dois tipos de arquivos sendo o primeiro com extensão .php e
o outro com extensão .html e a relação de dependência entre os arquivos fontes a serem
produzidos durante a fase de implementação do sistema. O componente index.html depende
de cinco componentes que são sapo_list.php, verdade_list.php, portgov_list.php,
jnoticias_list.php e aim_list.php e por sua vez estes componentes dependem de outros cinco
componentes e enquanto dependem são necessitados por outros cinco componentes abaixo
deles.
O diagrama apresentado anteriormente não é suficiente para representar todos os
componentes relevantes do sistema daí a necessidade de se ilustrar o diagrama abaixo; ele
mostra as interfaces de programação para aplicações (APIs) utilizadas para acessar a rede,
extrair notícias e processamento de codificação de caracteres. Detalhes da implementação
destes componentes serão apresentados mais adiante.
Figura 6: Diagrama de componentes apresentando as APIs utilizados pelo sistema. Fonte: Autor.
2.4. ARQUITECTURA
Conceptualmente o sistema foi concebido como sendo constituído por três camadas
com funções distintas que são: Camada de apresentação, regras de negócio e camada de
dados, conforme pode-se observar na figura 7.
46
 Camada de apresentação: Estão incluídos todos os componentes para visualização
do conteúdo pelo usuário (a parte correspondente a interface gráfica) cujo principal
objectivo é o provimento de um meio de comunicação com o sistema de modo a faze-
lo sujeitar-se as necessidades do usuário.
 Regras de negócio: Esta é a camada do meio onde ocorre o processamento
intermediário de dados entre a camada de apresentação e de dados.
 Dados: Esta camada representa os recursos em termos de APIs que permitem acesso à
fonte de informação digital que são os websites de notícias utilizados, esta é a parte
que corresponde ao processo de extracção de notícias propriamente dito e pode
considerar-se como sendo o “coração” do sistema.
Apresentação
Dados
Regras de negócio
Primeira
camada
Segunda
camada
Terceira
camada
Figura 7: Arquitectura de três camadas do sistema. Fonte: Autor.
47
2.5. IMPLEMENTAÇÃO DO SISTEMA
Nesta secção apresenta-se as ferramentas empregues durante a fase de
desenvolvimento principalmente a livraria implementada na linguagem PHP para EI na
internet que ajuda a perceber como foi feito o processo de web scraping (ver capítulo 1).
2.5.1. Desenvolvimento back end
De forma simplificada desenvolvimento back end significa desenvolvimento do lado
do servidor, e como já tinha sido referido nos RNF, a tecnologia a ser utilizada é o PHP5,
cujos detalhes de implementação estão clarificados já a seguir.
Extracção de notícias
O Simple HTML DOM para PHP5 permite o usuário fazer web scraping com o uso de
selectores CSS e ela é baseada no projecto HTML Parser for PHP-45
, o motivo da escolha
desta livraria é a sua simplicidade e existência de uma documentação facilmente
compreensível o que permite o seu uso sem grandes dificuldades.
Algumas das suas maiores qualidades são o suporte de HTML inválido, possibilidade
de extracção de conteúdo HTML com poucas linhas de código, uso de selectores CSS, ser
open source, possuir uma vasta comunidade de usuários e é recomendada o seu uso por
algumas bibliografias como por exemplo TURLAND (2010), fóruns e artigos da internet.
Esta livraria é responsável por extrair notícias dos diferentes páginas web para que as mesmas
possam ser oferecidos aos usuários do sistema. A próxima figura mostra exactamente o
código fonte retirado do sistema para extracção de links para títulos de notícias da AIM.
5
http://php-html.sourceforge.net/
48
Figura 8: Extracção de links para títulos de notícias da AIM. Fonte: Autor.
Linha 13: No loop foreach, a variável $html possui a página web da AIM, e nela
extrai-se todo código HTML cujo elemento é a tag <ul> e possui como atributo o id=’news’,
em cada iteracção o resultado é passado para a variável $elms.
Linha 15: O loop foreach faz busca na variável $elms e extrai todo código HTML
cujo elemento é uma lista <li> e tem como elemento filho <span> que possua o id=’title’.
Em cada iteracção o resultado é colocado na variável $elmi; neste caso o resultado que
retorna são âncoras.
Linhas 17 e 18: Neste último loop procura-se todas as âncoras que a variável $elmli
possuia e extrai-se o link, sendo o resultado armazenado na variável $linksArm onde se cria
uma URL completa com a inclusão do domínio.
Linha 27: Todos os links que a variável $linksArm possui são retornados para uma
outra função que faz processamento adicional.
A próxima figura é o trecho de código fonte para a extracção de títulos de notícias e
não necessita de muito esclarecimento devido a semelhança com o código anterior, a
novidade consta na linha 51.
49
Figura 9: Extracção de títulos de notícias do website da AIM. Fonte: Autor.
Linha 51: a expressão $cab->plaintex indica a extracção de texto que corresponde
aos títulos das notícias que se encontram armazenadas na variável $cab, esta computação
ocorre no primeiro parâmetro da função mb_convert_encoding(), que é utilizada para
providenciar suporte a caracteres de língua portuguesa que possuem acentos e outros
símbolos. Esta função é parte de uma extensão em PHP denominada mbstring, ela serve para
ultrapassar problemas resultante do manipulamento de caracteres, cujo tamanho da palavra
excede 1 byte (8 bits), como o caso de palavras acentuadas na língua portuguesa. O mbstring
é uma extensão que não aparece por defeito inserida no PHP o que implica a sua instalação
antes do seu uso, mas felizmente para o desenvolvimento deste sistema não foi necessário tal
procedimento porque o servidor Wampserver já o possui instalado, dai foi apenas necessário
activa-lo.
Na próxima figura está patente a criação de âncoras contendo títulos de notícia e os
respectivos links para a AIM.
50
Figura 10: Criação de âncoras contendo títulos de notícias e os seus respectivos links para AIM. Fonte: Autor.
Linha 42 e 43: definição de duas variáveis que recebem os títulos de notícias e os
links respectivamente.
Linhas 46 a 54: enquanto as variáveis $cabecalho_aim e $link_aim possuírem
conteúdo deve-se criar âncoras dentro de uma lista <li> contendo o título de uma notícia e o
seu respectivo link.
Acesso a rede
Para que o sistema possa ter acesso a rede de modo a aceder os websites de notícias
para extrair conteúdos faz uso da extensão cURL para PHP. O cURL possui uma API
pequena que basicamente consiste de chamadas de funções contendo as configurações de
rede desejadas. Veja a seguir o código implementado para o sistema.
Figura 11: Uso do cURL para PHP no sistema. Fonte: Autor.
51
2.5.2. Desenvolvimento front end
O desenvolvimento front end corresponde a parte da interface do usuário num sistema
baseado na web e usaram-se as linguagens HTML5, CSS3 e Javascript com amplo auxílio da
livraria JQuery mobile. Esta livraria permite através do uso da programação declarativa
construir páginas web responsivas para dispositivos móveis o que permitirá que as páginas
criadas funcionem em uma ampla variedade de dispositivos móveis incluindo dispositivos
que não sejam móveis. A implementação deste software no sitema pode-se observar logo
abaixo.
Figura 12: Trencho de código HTML para a página inicial implementando JQuery mobile no sistema. Fonte: Autor.
2.6. MANUAL DO USUÁRIO
Nesta secção faz-se uma explicação acerca de como utilizar o sistema desenvolvido,
na perspectiva do usuário. Para a criação do manual foram utilizadas imagens obtidas a partir
da emulação da plataforma móvel Samsung Galaxy SIII com o uso da ferramenta DevTools.
52
2.6.1. Página inicial
A página inicial (ver figura 13) possui navegação em listas onde cada item dá acesso a
uma fonte de notícia, apresentando do lado esquerdo imagens e do lado direito uma seta
sugerindo continuidade de acesso ao conteúdo após a escolha efectuada pelo usuário.
O campo de pesquisa permite que haja acesso a fontes das notícias que o usuário
pretende por meio de uma lista reduzida, consoante o termo por ele pesquisado conforme
pode-se observar na segunda imagem da figura abaixo. Quando clicada a imagem na forma
de um “X” o campo de pesquisa fica vazio e a lista de navegação volta ao seu estado inicial
(com cinco fontes de notícias).
Figura 13: Página inicial. Fonte: Autor.
53
2.6.2. Lista de notícias
Depois de aceder a página inicial e ter acesso às fontes de notícias, o usuário será
direccionado a uma outra página onde encontrará uma lista de notícias recentes identificadas
pelos respectivos títulos, a lista a ser disponibilizada é completamente dependente de cada
fonte, sendo assim está garantido o acesso a material informativo diversificado e bastante
rico, com hipótese de se encontrar a mesma notícia em diversas fontes narradas de formas
diferentes. A lista pode ser visualizada na próxima figura.
As listas de notícias apresentam as mesmas características que a listagem da página
inicial excluindo o uso de imagens que não é necessário. Cada lista tem o seu próprio nível de
detalhes sobre a notícia que ela oferece. Por exemplo, na figura é possível constatar que Sapo
Figura 14: Lista de notícias para Sapo notícias (esquerda) e AIM (direita). Fonte: Autor.
54
notícias apresenta informação sobre o dia e hora em que cada notícia foi publicada enquanto
que a AIM indica nalgumas vezes a origem da sua própria notícia e as letras são maiúsculas.
No topo das páginas existe um botão que permite o acesso a página inicial.
Com a orientação do dispositivo móvel no modo “normal” (portrait mode) é possível
que os títulos de notícias apareçam em várias linhas se o mesmo for muito longo, este cenário
pode mudar caso for alterado a orientação para landscape mode (ver figura 15).
2.6.3. Notícias
Se o usuário seleccionar uma das notícias da lista de notícias ele será direccionado
para a terceira página onde poderá ler o conteúdo que deseja. No final da página também é
apresentado a possibilidade de fazer comentários através do widget do Facebook (ver figura
17) embutido na aplicação e acesso as fontes originais de notícias para o caso de ocorrer a
necessidade de realização desta acção.
Consequentemente, uma nova aba será aberta para não permitir que o usuário deixe
de visualizar o conteúdo a partir do sistema uma vez que as notícias estão adaptadas para
dispositivos móveis situação essa que pode não ser uma característica das fontes de notícias.
Para fazer uma apreciação de como notícias são apresentadas observe a próxima figura.
Figura 15: Lista de notícias da AIM com o telemóvel em landscape mode. Fonte: Autor.
55
Figura 16: Visualização de uma notícia da AIM. Fonte: Autor.
No topo da página o usuário é apresentado duas opções sendo a primeira no lado
esquerdo para voltar a página inicial e a segunda no lado direito para aceder a lista de notícias
para a mesma fonte de informação. A forma como a notícia é apresentada e o tipo de
informação adicional oferecido depende da fonte de notícia, neste caso a AIM fornece a data
da publicação e a hora no primeiro parágrafo depois do título, algumas fontes podem o fazer
ocasionalmente ou nunca o fazem; outras podem apresentar erros ortográficos
ocasionalmente, muitos ou poucos parágrafos, etc. e estes aspectos estão fora do controle
deste sistema, mesmo que a intenção seja de satisfazer o usuário e proporcional uma
experiência única e confortável.
Figura 17: Link para acesso a fonte de notícia (AIM) e comentários no fim da notícia. Fonte: Autor.
56
Como conclusão, é certo afirmar que o desenho elaborado é ideal ao sistema e os
requisitos especificados são suficientes e apropriados para satisfazer o usuário em termos de
funcionalidades. Fazendo uma apreciação do manual do usuário, chega-se a conclusão que a
interface do sistema de facto é intuitiva com características muito próximas a de uma
aplicação nativa e o usuário não precisa de ter acesso a uma instrução para poder utiliza-lo,
mesmo que ele tenha limitações no domínio de sistemas web ou uso de aplicações de
informáticas duma forma geral.
57
CAPÍTULO 3. RESULTADOS E CONCLUSÃO
Neste capítulo apresenta-se a discussão dos resultados obtidos seguido pelos trabalhos
futuros onde se propõe melhorias no sistema como forma de continuidade deste projecto e
por último a conclusão da monografia.
3.1. RESULTADOS
Os resultados da monografia apresentam-se por capítulos, a considerar: O primeiro
capítulo (caracterização epistemológica) e o segundo capítulo (a proposta).
No primeiro capítulo, a tendência histórica permite enquadrar o historial da imprensa
de Moçambique em duas das seis revoluções dos meios de comunicação em massa que são:
A terceira revolução que corresponde com o princípio da imprensa local no período colonial
por volta no século XIX e a sexta revolução que corresponde com a imprensa moçambicana
no período pós colonial até a actualidade.
A seguir, a literatura científica permitiu a fundamentação epistemológica desta
monografia para se possuir um profundo conhecimento e desse modo a realização da escolha
do método de EI a ser aplicado para a projecção da ferramenta desenvolvida, nomeadamente
a adopção de um sistema codificado manulmente com conhecimento de HTML; fruto da
fusão dos conceitos fornecidos por SARAWAGI (2008) e STUART (2006).
Em relação ao segundo capítulo, pode-se evidenciar que o sistema funciona de forma
desejável, extraindo notícias recentes de diferentes fontes e a interface do usuário para
58
dispositivos móveis assemelha-se a uma aplicação nativa providenciando uma óptima
experiência de visualização em smartphones e tablets.
Para terminar, durante a prova do sistema, quando a conexão a internet da parte do
cliente e do servidor fossem boas, o tempo de carregamento de conteúdos poderia ser menor
que 1 segundo devido a funcionalidade prefetch descrita no capítulo 2; isto é 6 vezes mais
rápido que o tempo recomendavel de 6 segundos. Contudo, o período de carregamento pode
exceder em muito os 6 segundos por causa da dependência de recursos de rede.
3.2. TRABALHOS FUTUROS
A continuidade do sistema pode ser através de diversas melhorias principalmente em
termos de funcionalidades que actualmente podem fazer falta ao usuário. A maior mudança
será a sua implementação utilizando uma tecnologia diferente que é o framework denominado
scrapy na linguagem de programação python. A seguir apresentam-se todas as melhorias
necessárias:
 Acréscimo de mais fontes de notícias de modo a oferecer aos utilizadores uma imensa
variedade de conteúdo.
 A possibilidade do usuário ter acesso a notícias que não sejam necessariamente
recentes, por exemplo notícias de dois dias atrás, uma semana atrás, duas semanas
atrás, etc.
 Implementação do sistema na linguagem de programação python com o uso do
framework para web scraping denominado scrapy, este software possui mais
funcionalidades do que livraria Simple HTM DOM, é mais robusto (aliás, um dos
melhores softwares de web scraping a serem encontrados na internet) e é ideal para
um scraping mais avançado e com resultados mais satisfatórios.
59
 Acréscimo de mecanismos de colecta de informação sobre as preferências dos
usuários em aspectos como: a fonte de notícia preferencial, que funcionalidades os
usuário acham que devem constar e que fontes de notícias podem ser removidas ou
adicionadas.
 Guardar as notícias do portal do governo de Moçambique numa base de dados,
implementar uma memória caché temporária no servidor ou mesmo remover a fonte
(tendo em conta a sua credibilidade e importância esta última hipótese por enquanto
deve ser descartada) devido a um problema constante com este portal que muitas
vezes tem sido lento ou mesmo indisponível o que tem como consequência a
impossibilidade de acesso a notícias vindo dele.
3.3. CONCLUSÃO
A tendência histórica da imprensa que está dividida em seis fases revela a forma como
a notícia evoluiu a partir de momentos primordiais (antes da nossa era) até a era actual
(digital) onde o meio de acesso que mais cresce são os websites, o tipo de media no qual o
sistema proposto para esta monografia se enquadra.
A caracterização epistemológica permite perceber como a ferramentas de EI
funcionam, qual o seu fim e fornece uma imagem muito clara das implicações de concepção
de ferramentas com o intuito de extrair informação como o caso do web scraper de notícia
para dispositivos móveis.
A apresentação rigorosa do ponto de vista científico e baseado numa literatura
totalmente actualizada aponta a um processo de criação da solução proposta tendo em conta a
Engenharia de Software e a implementação do sistema utilizando tecnologias abertas
disponíveis na internet incluindo o manual do usuário ilustrado como meio de lidar com o
60
problema exposto que é uma abordagem da questão de limitações no acesso a notícias digitais
explorando o poder dos dispositivos móveis através do uso do seu potencial pelo que neste
caso navegadores cada vez mais sofisticados com suporte a tecnologias web recentes e
possibilidade de acesso a internet por meio de uma conexão com velocidade satisfatória
permitiu a obtenção de resultados desejados e o cumprimento do objectivo e a hipotese a
defeder nesta monografia.
61
BIBLIOGRAFIA
BOONE, Louis & KURTZ, David. Contemporary Marketing: Update 2015. Natorp
Boulevard Mason: Cengage Learning, 2014.
CHANG, George et al. Mining the World Wide Web: An Information Search Approach.
Norwell: Spring, 2001.
CHICAVA, Sérgio & POHLMANN, Jonas. Uma Breve Análise da Imprensa Moçambicana.
Desafios para Moçambique. In: de BRITO, L. at al. (eds.). Desafios para Moçambique 2010.
Maputo: IESE, 2010.
DENECKE, Kerstin. Event-Driven Surveillance: Possibilities and Challenges. New York:
Springer, 2012, p.37.
ENDRES, Kathleen, L. Evolution of Journalism and Mass Communication. In: LUTHRA,
Rashmi (eds). Journalism and Mass Communication. Paris: Eolss Publishers, 2009, vol. 1.
FANG, Irvang. A History of Mass Communication. Washington: Focal Press, 1997.
FITZGERALD, Michael. Introduction to Regular Expressios. Sebastopol: Oreilly, 2012.
GHOSH, Ashish, DE, Rajat K. & SANKAR, K, Pal. Pattern Recognition and Machine
Intelligence: Second International Conference, PReMI 2007, Kolkata, India, December
18-22, 2009, Proceedings. Kolkota: Springer, 2009.
GREENBERG, Jane. Metadata for Semantic and Social Applications: Proceedings of the
International Conference on Dublin Core and Metadata Applications: Berlin, 22-26
September 2008: DC 2008: Berlin, Germany. Berlin: Universitätsverlag Göttingen, 2008.
62
HOHLFELDT, António & GRABAUSKA, Fernanda (2010). Pioneiros da Imprensa em
Moçambique: João Albasini e Seu Irmão. Disponível em <http://bjr.sbpjor.org.br/bjr/article/
view/255/254> Acesso: 10/09/2014.
HURWITZ, Judith. Big Data for Dummies. Hoboken: John Wiley & Sons, 2013, p.9.
KAPETANIOS, Epaminondas e tal. Natural Language and Information Systems: 13th
International Conference on Applications of Natural Language to Information Systems,
NLDB 2008 London, UK, June 24-27, 2008, Proceedings. Heidelberg: Springer, 2008,
p.207.
KOZIEROK, Sam. The HTTP Manual. Hoboken: John Wiley & Sons, 2005.
KUMAR, Ela. Natural Language Processing. New Delhi: I. K. International Pvt Ltd, 2011.
LEVITHAN, Steven & GOYVAERTS, Jan. Regular Expressions Cookbook. Sebastopol:
Oreilly, 2009.
MAO, Wenji & WANG, Fei-Yue. Advances in Intelligence and Security Informatics.
Oxford: Academic Press, 2012.
MINER, Gary, et al. Practical Text Mining and Statistical Analysis for Non-structured Text
Data Applications. Waltham: Academic Press, 2012.
MITCHELL, Ryan. Instant Web Scraping with Java. Birmingham: Packt Publishing Ltd,
2013.
MOENS, Marie-Francine. Information Extraction: Algorithms and Prospects in a Retrieval
Context. Dordrecht: Springer, 2006.
MUGELLINI, Elena et tal. Advances in Intelligent Web Mastering – 3. Chennai: Springer,
2011, p. 155.
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis
Web Scraper Notícias Móveis

Weitere ähnliche Inhalte

Ähnlich wie Web Scraper Notícias Móveis

Pim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. finalPim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. finalCesar Jardim
 
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDITCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDIBruno Gastaldi
 
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...Ravel Gimenes
 
Relatorio do projecto de telemedicina revisao
Relatorio do projecto de telemedicina   revisaoRelatorio do projecto de telemedicina   revisao
Relatorio do projecto de telemedicina revisaoUniversidade_Lusiada
 
M-Commerce e a Plataforma Google Android
M-Commerce e a Plataforma Google AndroidM-Commerce e a Plataforma Google Android
M-Commerce e a Plataforma Google AndroidDiegoAntonelli
 
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IVPROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IVHenry Jackman
 
Portal de Acompanhamento de Egressos
Portal de Acompanhamento de EgressosPortal de Acompanhamento de Egressos
Portal de Acompanhamento de EgressosCassiano Carraro
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaLucianaFerreira163
 
Sistema de informacao juridica - Infojur
Sistema de informacao juridica  - InfojurSistema de informacao juridica  - Infojur
Sistema de informacao juridica - InfojurGilson Martins
 
CIP_JOAO_VIVEIROS_TESE
CIP_JOAO_VIVEIROS_TESECIP_JOAO_VIVEIROS_TESE
CIP_JOAO_VIVEIROS_TESEJoão Viveiros
 
Repositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSPRepositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSPMário Januário Filho
 
PROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOS
PROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOSPROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOS
PROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOSZózimo Rodrigues
 
Tcc sistema controle-equipamento
Tcc sistema controle-equipamentoTcc sistema controle-equipamento
Tcc sistema controle-equipamentoZózimo Rodrigues
 
Apostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redes
Apostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redesApostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redes
Apostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redesjs265082630
 
Programação Paralela em occam-pi
Programação Paralela em occam-piProgramação Paralela em occam-pi
Programação Paralela em occam-piRui Miranda
 
REDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEOREDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEOYouTube TV
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Waldir R. Pires Jr
 
Relatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@InternetRelatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@InternetAntonio Nascimento
 

Ähnlich wie Web Scraper Notícias Móveis (20)

Pim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. finalPim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. final
 
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDITCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
 
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
 
Relatorio do projecto de telemedicina revisao
Relatorio do projecto de telemedicina   revisaoRelatorio do projecto de telemedicina   revisao
Relatorio do projecto de telemedicina revisao
 
M-Commerce e a Plataforma Google Android
M-Commerce e a Plataforma Google AndroidM-Commerce e a Plataforma Google Android
M-Commerce e a Plataforma Google Android
 
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IVPROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
PROJETO INTEGRADO MULTIDISCIPLINAR IV - PIM IV
 
Portal de Acompanhamento de Egressos
Portal de Acompanhamento de EgressosPortal de Acompanhamento de Egressos
Portal de Acompanhamento de Egressos
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informatica
 
Voiplegal
VoiplegalVoiplegal
Voiplegal
 
Sistema de informacao juridica - Infojur
Sistema de informacao juridica  - InfojurSistema de informacao juridica  - Infojur
Sistema de informacao juridica - Infojur
 
CIP_JOAO_VIVEIROS_TESE
CIP_JOAO_VIVEIROS_TESECIP_JOAO_VIVEIROS_TESE
CIP_JOAO_VIVEIROS_TESE
 
Repositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSPRepositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSP
 
PROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOS
PROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOSPROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOS
PROPOSTA DE SOFTWARE PARA CONTROLE DE EQUIPAMENTOS
 
Tcc sistema controle-equipamento
Tcc sistema controle-equipamentoTcc sistema controle-equipamento
Tcc sistema controle-equipamento
 
Apostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redes
Apostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redesApostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redes
Apostila de-instalac3a7c3a3o-e-configurac3a7c3a3o-de-redes
 
Programação Paralela em occam-pi
Programação Paralela em occam-piProgramação Paralela em occam-pi
Programação Paralela em occam-pi
 
Monografia - Padrões Web
Monografia - Padrões WebMonografia - Padrões Web
Monografia - Padrões Web
 
REDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEOREDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEO
 
Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014
 
Relatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@InternetRelatorio Bic Schoolsenses@Internet
Relatorio Bic Schoolsenses@Internet
 

Web Scraper Notícias Móveis

  • 1. WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS Jordão Ortega Jemusse Manguena
  • 2. UNIVERSIDADE ZAMBEZE FACULDADE DE CIÊNCIAS E TECNOLOGIA WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS JORDÃO ORTEGA JEMUSSE MANGUENA BEIRA 2014
  • 3. UNIVERSIDADE ZAMBEZE FACULDADE DE CIÊNCIAS E TECNOLOGIAS WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS JORDÃO ORTEGA JEMUSSE MANGUENA ORIENTADOR: Dr. C. ENG°. JOSÉ ALBERTO VIGUERAS MORENO BEIRA 2014 Monografia Científica submetida a Faculdade de Ciências e Tecnologias, Universidade Zambeze, Beira, em cumprimento dos requisitos para a obtenção do Grau de Licenciado.
  • 4. DECLARAÇÃO Eu, JORDÃO ORTEGA JEMUSSE MANGUENA declaro que esta monografia é resultado do meu próprio trabalho e está a ser submetida para a obtenção do grau de Licenciado em Engenharia Informática na Universidade Zambeze, Beira. Ela não foi submetida antes para obtenção de nenhum grau ou para avaliação em nenhuma outra universidade. Beira, ____ de Novembro de 2014 ___________________________________________________ (Jordão Ortega Jemusse Manguena)
  • 5. AGRADECIMENTO Agradeço a Deus e aos meus familiares por me suportarem em momentos de dificuldades e tolerar a minha falta de tempo para assuntos familiares em detrimento dos estudos. A Universidade Zambeze por me dar a oportunidade de fazer o curso e de reunir todas as condições para que as aulas decorressem normalmente e sempre se preocupou com a qualidade do conhecimento que se transmite. Ao meu orientador Dr. C. Eng. José Alberto Vigueras Moreno que dedicou muito tempo a tarefa de me guiar durante todo o processo de elaboração desta monografia e mostrou imensa disponibilidade em me auxiliar. A todos os meus colegas do curso de Engenharia Informática.
  • 6. ÍNDICE RESUMO................................................................................................................................... I ABSTRACT.............................................................................................................................. II LISTA DE ILUSTRAÇÕES....................................................................................................III LISTA DE TABELAS.............................................................................................................IV LISTA DE ABREVIATURAS.................................................................................................V INTRODUÇÃO.........................................................................................................................1 CAPÍTULO 1. MARCO TEÓRICO CONCEITUAL ...............................................................6 1.1. TENDÊNCIA HISTÓRICA DA IMPRESA ......................................................................6 1.2. CARACTERIZAÇÃO EPISTEMOLÓGICA ..................................................................13 1.2.1. Extracção de Informação ...............................................................................................14 1.2.2. Extracção de informação na Web ..................................................................................21 CAPÍTULO 2. DESENVOLVIMENTO DA PROPOSTA: WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS...........................................................................................27 2.1. FONTES DE NOTÍCIAS .................................................................................................27 2.2. ENGENHARIA DE REQUISITOS..................................................................................29 2.2.1. Requisitos funcionais.....................................................................................................29 2.2.2. Requisitos não funcionais ..............................................................................................32 2.3. DESENHO DO SISTEMA...............................................................................................36 2.3.1. Diagrama de caso de uso................................................................................................36 2.3.2. Diagrama de deployment ...............................................................................................43 2.3.3. Diagrama de componentes.............................................................................................44 2.4. ARQUITECTURA ...........................................................................................................45 2.5. IMPLEMENTAÇÃO DO SISTEMA...............................................................................47
  • 7. 2.5.1. Desenvolvimento back end............................................................................................47 2.5.2. Desenvolvimento front end............................................................................................51 2.6. MANUAL DO USUÁRIO ...............................................................................................51 2.6.1. Página inicial..................................................................................................................52 2.6.2. Lista de notícias .............................................................................................................53 2.6.3. Notícias ..........................................................................................................................54 CAPÍTULO 3. RESULTADOS E CONCLUSÃO..................................................................57 3.1. RESULTADOS.................................................................................................................57 3.2. TRABALHOS FUTUROS ...............................................................................................58 3.3. CONCLUSÃO ..................................................................................................................59 BIBLIOGRAFIA .....................................................................................................................61 ANEXOS .................................................................................................................................65
  • 8. I RESUMO Actualmente as plataformas digitais de notícias principalmente os websites estão se transformando fontes preferenciais de acesso a informação por um número cada vez mais crescente de pessoas e junto desta realidade está o facto dos dispositivos móveis com alto poder de processamento como os smartphones estarem a tornar-se no principal meio de computação e acesso a internet. Através da revisão da bibliografia e observação exaustiva da realidade identificou-se a existência de dificuldades no acesso de conteúdo noticioso recente e de forma simplificada por meio de plataformas digitais de notícias especialmente adaptados para dispositivos móveis. Como forma de ultrapassar esta questão a presente monografia tem como objectivo desenvolver um web scraper de notícia para dispositivos móveis que irá prover informação recente de diferentes fontes numa só plataforma em qualquer lugar e hora. Assim sendo, implementou-se o sistema utilizando tecnologias web principalmente o PHP5 tendo como resultado evidencias suficientes do funcionamento devidamente optimo da proposta, materializando-se com sucesso o desafio apresentado. Palavras-chaves: Extracção de informação, dispositivos móveis, web scraping, fonte de notícia e smartphone.
  • 9. II ABSTRACT Digital platforms of news mainly websites are becoming preferential source of information by an increasing number of people and linked to this reality is the fact that mobile devices with high processing power like smartphones are being the main mean of computation and access to the internet. Through literature review and exhaust observation of the reality it was identified the existence of difficulties in the access of recent news in a simple manner using digital plataforms especially adapted to mobile devices; as a way to solve the problem presented this monograph has the objective of developing a news web scraper for mobile devices which is going to provide recent information from different sources in only one platform at any place and time. Thus, the system was implemented using web technologies mainly PHP5. As a result, there are enough evidences to claim that the proposed system functions properly, successfully materializing the objective. Keywords: Information extraction, mobile devices, web scraping, news source and smartphone.
  • 10. III LISTA DE FIGURAS Figura 1: Arquivo BibLATeX mostrando informação bibliográfica sobre esta monografia...15 Figura 2: Exemplo de uma transação HTTP............................................................................22 Figura 3: Diagrama de caso de uso indicando acesso e fornecimento de notícias ..................37 Figura 4: Diagrama de deployment do sistema........................................................................43 Figura 5: Diagrama de componentes ilustrando a dependência entre diferentes componentes do sistema.................................................................................................................................44 Figura 6: Diagrama de componentes apresentando as APIs utilizados pelo sistema. .............45 Figura 7: Arquitectura de três camadas do sistema .................................................................46 Figura 8: Extracção de links para títulos de notícias da AIM..................................................48 Figura 9: Extracção de títulos de notícias do website da AIM ................................................49 Figura 10: Criação de âncoras contendo títulos de notícias e os seus respectivos links para AIM..........................................................................................................................................50 Figura 11: Uso do cURL para PHP no sistema........................................................................50 Figura 12: Trencho de código HTML para a página inicial implementando JQuery mobile no sistema......................................................................................................................................51 Figura 13: Página inicial ..........................................................................................................52 Figura 14: Lista de notícias para Sapo notícias (esquerda) e AIM (direita) ............................53 Figura 15: Lista de notícias da AIM com o telemóvel em landscape mode............................54 Figura 16: Visualização de uma notícia da AIM .....................................................................55 Figura 17: Link para acesso a fonte de notícia (AIM) e comentários no fim da notícia..........55
  • 11. IV LISTA DE TABELAS Tabela 1: Exemplo fictício de entidades extraídas sobre um funcionário da Goolge..............18 Tabela 2: Exemplo de eventos de três usuários do Facebook..................................................20 Tabela 3: Interface do usuário e apresentação do conteúdo ....................................................30 Tabela 4: Serviços a serem oferecidos ao usuário ...................................................................31 Tabela 5: Componentes de software e linguagem de programação.........................................32 Tabela 6: Performance. ............................................................................................................33 Tabela 7: Ferrementas de desenvolvimento.............................................................................34 Tabela 8: Licença.....................................................................................................................34 Tabela 9: Interface de comunicação ........................................................................................34 Tabela 10: Uso do produto.......................................................................................................34 Tabela 11: Armazenamento de informação. ............................................................................35 Tabela 12: Segurança...............................................................................................................35 Tabela 13: Fontes de notícias...................................................................................................35 Tabela 14: Acesso....................................................................................................................36 Tabela 15: Hospedagem...........................................................................................................36 Tabela 16: Outros RNF............................................................................................................36
  • 12. V LISTA DE ABREVIATURAS AIM- Agência de Informação de Moçambique APIS- Interface de Programação para Aplicações CERN -European Organization for Nuclear Research DevTool- Chrome Developer Tool DOM -Document Object Model EI -Extracção de Informação HTML-HyperText Markup Language HTTP- Hypertext Transfer Protocol NERCI- Reconhecimento de Entidades Nomeadas e sua Classificação PC -Personal Computer PDF -Portable Document Format PLN -Processamento de Linguagem Natural RF-Requisito Funcional RNF-Requisito Não Funcional SOICO -Sociedade Independente de Moçambique URL-Uniform Resource Locator WWW -World Wide Web XML-Extensible Markup Language
  • 13. VI
  • 14. 1 INTRODUÇÃO As tecnologias de informação e comunicação estão em franco crescimento e elas tendem a influenciar a forma como as pessoas vê o mundo e solucionam os problemas, consequentemente a dependência sobre dispositivos electrônicos é crescente. Até aos dias actuais o verdadeiro potencial de um computador é uma incognita porque sempre supera a imaginação do homem, mesmo sendo ele o criador desta maravilha tecnológica. Isto em parte porque várias tarefas cada vez mais complexas de diferentes áreas de trabalho podem ser realizadas e também a existência de muita competição por parte de gigantes da tecnologia que lutam pelo domínio do mercado mundial o que induz ao desenvolvimento de novas tecnologias e introdução de novos padrões. Com o uso crescente do computador e várias tecnologias relacionadas passou a se gerar muita informação em base de dados, vídeos e diversos tipos de arquivos, alguns padronizados e outros não para diferentes propósitos começando pelo simples armazenamento, compartilhamento de dados, comunicação, entre outros. De igual modo, à poucas décadas atrás (a partir dos anos 70) percebeu-se que a informação armazenada na forma digital possui um enorme potencial que é a facilidade relativa em comparação as fontes físicas que na sua maioria se apresentam em papel de se conceber ferramentas tecnológicas com o uso do computador que possam possibilitar a sua extracção. Esta possibilidade de se extrair informação relevante de fontes digitais levanta um conjunto de questões sobre as técnicas e procedimentos inerentes a este processo o que originou o surgimento de uma área específica nas ciências de computação que pudesse lidar
  • 15. 2 com o processo de Extracção de Informação (EI) abrindo horizontes e paradigmas, levantando novos problemas e propondo novas soluções. Extrair Informação da internet constitui um imenso desafio porque as páginas web na maioria das vezes não apresentam mecanismos para se obter informação nelas contida (no contexto de extracção automática), em muitos casos porque não há interesse nisso, a mesma situação se aplica aos serviços digitais de notícias. Devido a necessidade de manter as pessoas informadas e para a sobrevivência do negócio de venda de notícia as empresas produtoras de notícias tendem a migrar para plataformas virtuais no mundo inteiro em detrimento dos meios tradicionais principalmente o jornal e revistas impressas que tem o seu principal concorrente os websites de notícias e plataformas similares como blogs, medias sociais e subscrição por correio electrónico. Por mais que este processo seja lento, em Moçambique comparado com o resto do mundo por insuficiência de recursos económicos, humanos e técnicos pode-se tê-lo como irreversível pois é uma tendência global e apresenta inúmeros benefícios em comparação com os meios convencionais a partir da etapa de busca de fontes de informação até a distribuição que é relativamente pouco onerosa. Os meios digitais de informação vão aumentando em termos unitários, criando cada vez mais facilidades de acesso a um custo muito reduzido muitas vezes a um preço monetário nulo que se justifica na incondicional ou “compulsiva” visualização de conteúdo publicitário aos internautas, que não obedece limites físicos de fronteiras territoriais, de sistemas operativos e recentemente do tipo de dispositivo a ser utilizado (desktop, laptop, netbook, personal digital assistent, smartphone, tablet, smartwatch, chromebook, smarttv, consolas de game…) que é fruto da padronização das tecnologias web que a todo o custo pretendem criar um ambiente perfeito de interoperabilidade entre plataformas tecnológicas.
  • 16. 3 A parir da observação exaustiva da realidade (caracterizada pelo incremento dos meios virtuais de acesso a notícias e tendência de uso do smartphone como principal dispositivo de computação e de acesso a internet) e estudo profundo da literatura sobre esta temática identificaram-se limitações nos sistemas de notícias baseados em plataformas digitais (especificamente websites), as quais mostram-se a seguir:  Existência escassa de serviços digitais que tem como intuito o acesso simplificado a notícias a partir de fontes de referência.  Limitações em aceder notícias a qualquer lugar e hora com recurso a um dispositivo móvel (principalmente o smartphone).  Alguns serviços digitais de notícias são estabelecidos por amadores, pessoas sem acesso a fontes credíveis de notícias ou grupos que fazem cópia de conteúdo alheio o que em algum momento pode por em causa a credibilidade do que se oferece. Como consequência, nalgumas vezes pode ser exaustivo ou desencorajador localizar a fonte correcta de notícia digital principalmente usando um smartphone, o que certamente é contrário a qualquer princípio de oferta satisfatória de um determinado produto, especialmente a informação. Por conseguinte, existe a necessidade de se organizar a informação de diferentes fontes credíveis numa só plataforma de um modo muito simples sem nenhum tipo de restrição e acessível através de dispositivos móveis, o que leva a definição do seguinte problema nesta monografia:  Dificuldades no acesso a conteúdo noticioso recente de qualidade e de forma simplificada por meio de plataformas digitais de notícias especialmente adaptadas para dispositivos móveis.
  • 17. 4 Pelo que é necessário para a solução do mesmo desenvolver um web scraper de notícia para dispositivos móveis que irá prover informação recente de diferentes fontes de referência numa só plataforma a qualquer lugar e hora, como objectivo geral deste projecto. Para responder o problema científico tendo em consideração o objectivo exposto, tem- se a seguinte hipótese: Se for desenvolvido um web scraper de notícia para dispositivos móveis que irá prover informação recente proveniente de diferentes fontes, acessível a qualquer lugar e hora cria-se muita simplicidade no acesso a notícias actualizadas de qualidade para um número amplo de utilizadores de plataformas digitais de notícias. Para o objectivo seja alcançado os seguintes objectivos específicos devem ser considerados:  Determinar a tendência histórica da imprensa.  Caracterizar epistemologicamente o processo de EI incluindo o web scraping.  Definir quais fontes de notícias dentre os vários disponíveis na internet serão integrados no sistema que se pretende desenvolver e caracteriza-los.  Desenvolver o sistema usando a técnica de EI web scraping com o uso da livraria Simple HTM DOM na linguagem de programação PHP5 para a parte de back end e as linguagens de programação HTML5, CSS3 e Javascript para a parte frontend que será responsável em adaptar a aplicação para dispositivos móveis.  Elaborar o manual do usuário da proposta.  Fazer a apresentação dos resultados obtidos bem como os trabalhos futuros. A área de estudo é a EI, em particular o web scraping que é uma técnica utilizada para se adquirir informação a partir da internet, segundo a literatura “extracção de informação refere-se a extracção automática de informação estruturada como entidades, relacionamentos entre entidades e atributos descrevendo entidades de fontes não estruturadas” (SARAWAGI,
  • 18. 5 2008:1) e segundo MITCHELL (2013) web scraping é um processo automatizado que envolve parsing (análise) de dados para obtenção da informação que se deseja; pelo que neste caso fala-se da análise de informação fornecida pelas páginas web para a sua posterior extracção e armazenamento utilizando bases de dados, arquivos Extensible Markup Language (XML) ou alguma outra tecnologia de compartilhamento e armazenamento de dados. Para uma melhor comprensão, explicação e interpretação o presente documento apresenta-se dividido em introdução, três capítulos, bibliografia e anexos: A introdução apresenta de uma forma geral o contexto da monografia, o problema e os objectivos a serem alcançados. O primeiro capítulo faz a apresentação de conceitos relevantes sobre o processo de EI, as suas características, os diferentes métodos utilizados, o processo de EI na web, as dificuldades encontradas, esclarecimento do conceito de web scraping e a taxonomia para ferramentas de EI. O segundo capítulo apresenta o desenho do sistema utilizando diferentes ferramentas da Engenharia de Software, descrição dos diferentes componentes do sistema, a sua arquitectura, a implementação e o manual do usuário. O terceiro capítulo discute dos resultados obtidos, proposta de trabalhos futuros, conclusão da monografia e por último, a bibliografia e anexos que mostram os códigos fontes para extracção de notícias de algumas fontes de notícias.
  • 19. 6 CAPÍTULO 1. MARCO TEÓRICO CONCEITUAL Neste capítulo descreve-se a tendência histórica da imprensa buscando-se os seus momentos mais marcantes tendo em conta o mundo e Moçambique. A seguir, faz-se a caracterização epistemológica do processo de EI focalizando-se nas teorias e vários processos que dela fazem parte para que haja uma noção muito clara e científica da proposta desta monografia. 1.1. TENDÊNCIA HISTÓRICA DA IMPRESA A forma de produção, distribuição e acesso a notícias segue o desenvolvimento da história da imprensa e este processo acompanha o progresso dos meios de comunicação em massa. A presente abordagem baseia-se na classificação feita por FANG (1997) sobre as diferentes fases da evolução dos meios de comunicação em massa, em alguns períodos introduz-se uma abordagem no contexto moçambicano (e não em todos como deveria ser), porque a imprensa de Moçambique não compartilha das mesmas fases de crescimento que o resto do mundo principalmente o ocidente onde ocorreram os marcos mais importantes. Primeira revolução: A escrita A escrita foi criada por cerca de 3100 A.C, onde os sumérios inventaram números, escrita pictográfica1 e possivelmente a Matemática; a escrita era feita sobre placas de argila. Nos anos 2000 A.C o papiro foi adoptado como meio de escrita no Egipto antigo, substituindo a pedra, mesmo assim o papiro possuía muitas limitações, uma delas era de não 1 Escrita pictográfica: escrita feita por meio de desenho de objectos e animais para recordação.
  • 20. 7 durar muito tempo e apenas era produzido no Egipto consequentemente, um meio de escrita melhorado foi criado: o pergaminho. A invenção do alfabeto ocorre nos anos 1700 A.C., a partir deste momento a comunicação humana começava a quebrar os seus limites e a simplicidade do alfabeto permitiu que muita gente pudesse usa-lo. Segunda revolução: A impressão No ano 59 A.C Julius Caesar ordenou que toda a informação oficial do seu governo e anúncios fossem publicados em Roma e esses anúncios eram denominados Acta Diurna (Transações Diárias), os boletins informativos que incluíam informações da acta eram cópias feitas manualmente e enviadas às províncias romanas por ordem do imperador. Poucos séculos depois na China, apareceu um jornal parecido ao Acta Diurna conhecido como Tipao (relatório do palácio) trazendo noticias e anúncios de outras províncias para a liderança (ENDRES, 2009). A primeira publicação do Tipao foi feita a mão com impressão em blocos de madeira e esteve presente até o fim do império Manchu em 1911, este jornal sobreviveu por mais de doze séculos. Nos meados do século XIV, na Europa as notícias apareciam em terceira ou quarta mão a partir de monges, soldados, vendedores de indulgências e perdões papais que viajavam de uma cidade para outra. No ano de 1450 Gutenberg imprimiu a bíblia usando a imperssão do tipo móvel (letras individuais, reutilizáveis, fundidas em metal ou madeira) tendo cada página cerca de 36 linhas.
  • 21. 8 Ele refinou os métodos nos anos seguintes e por volta de 1457 à 1458, cada página tinha cerca de 42 linhas passando a produzir bíblias com este número de linhas por cada uma das 1282 páginas de duas colunas das quais 42 bíblias por ele imprimido ainda existem actualmente. Nos anos consecutivos a imprensa se espalhou por quase toda a Europa devido a este tipo de impressão introduzido por Gutenberg, iniciando assim a revolução da informação e repetição industrial. Terceira revolução: Meios de comunicação No ano de 1798 Nickolas Robert criou a primeira máquina de fabricação de papel, antes desta invenção o papel era muito caro e de fabrico pouco eficiente, esta máquina poderia fazer em dois dias trabalho que levaria três meses para a produção de papel, após duas décadas esta máquina impulsionou em muito a impressão de notícias. Nos séculos XVII e XVIII jornais passaram a apresentar ilustrações em xilogravura e manchetes amontoados na primeira página. Nos meados do século XIX ocorre a mudança para prensas maiores e notícias por telégrafo levou a mais injecção de capital para produção de jornais e obtenção de renda a partir deles. Diferentes continentes passaram a se ligar por cabo para que houvesse troca de informação e junto disso notícias entre os cinco continentes poderiam-se enviar por telégrafo em curto espaço de tempo. Em 1851 um cambo ligava Inglaterra e Franca e no mesmo período países como Inglaterra e Irlanda, Dinamarca e Suíça depois África e Europa foram ligados por cabo através do mar mediterrâneo, em 1866 o primeiro cabo transatlântico entre Canadá e Inglaterra, em 1902 cabos chegaram a Austrália e em 1906 chegaram a Xangai na China.
  • 22. 9 Nos finais do século XIX, fotografias passaram a fazer parte das notícias e publicidades nos jornais, nasceu desta forma a arte denominada por fotojornalismo. Os finais do século XIX viram o surgimento de gigantes de media com a venda de jornais privados para grandes corporações. A continuação desta abordagem sobre a terceira revolução nos próximos três parágrafos tem como intuito trazer informação acerca da imprensa moçambicana durante este período segundo a descrição fornecida por HOHLFELDT & GRABAUSKA (2010), os quais expõem que a partir do século XIX surgem os primeiros jornais nacionalistas, sendo o mais antigo O Africano de Quelimane (1 de Julho de 1877), seguiu-se a Revista Africana criada por José Campos de Oliveira, o primeiro escritor de língua portuguesa nascido na colónia (Moçambique). Em 1886 surge Civilização Africana que teria sido um jornal editado na ilha de Moçambique, ainda no século XIX surge o Clamor Africano datado de 1892, no mesmo ano tem-se registo do surgimento do jornal O Luso-africano que se teria publicado a partir de 3 de Janeiro de 1892 e outro O Africano, em 13 de Novembro do mesmo ano; não se tem muita informação sobre eles e é possível que não tenham passado de uma só edição. Muitas publicações surgiram com adjectivações semelhantes ao longo das décadas seguintes. O Africano que circulou entre 1912 e 1914; um semanário chamado Missão Africana ligado a missão N. Sra. do Rosário entre 1931 e 1940; e um semanário chamado Voz Africana que começou a ser editado a 30 de Dezembro de 1932 e que nos anos 1970 permanecia em circulação. Os desafios destes jornais eram contudo imensos: A falta de tipos, escassez de papel era comum e era também comum os jornais trocarem não apenas de papel mas também de dimensões. É neste contexto que surgem os irmãos Albasini, João e José fundaram dois
  • 23. 10 jornais O Brado Africano em 1908 e O Africano em 1919. O Africano mantinha uma página do jornal redigida na língua Ronga, o que logo o tornou extremamente popular. Quarta evolução: Entretenimento Caracterizada pela adição de conteúdos cómicos aos jornais, banda desenhada, horóscopos, programação televisiva e radiofónica, eventos de música, festivais, notícias de fofocas, escândalos sociais, etc. porque nem todos os usuários de jornais pretendiam ler notícias. O tablóide sensacionalista apareceu pela primeira vez em Londres no início do século XX, o tamanho permitia que pudesse ser lido com muito conforto, com muitas fotos, artigos de notícias de entretenimento e sensacionalistas. Quinta revolução: Galpão de ferramentas A casa deixou de ser apenas o local para encontro familiar, dormir e servir de lar, passou também a ser um local onde diversas ferramentas para comunicação estavam disponíveis. Em 1930, nos EUA apareceu o primeiro noticiário feito através da rádio por uma rede radiofónica, a NBC que na época criou uma grande revolta da parte dos jornais que se sentiram ameaçados e perderam muito lucro. Noticias na televisão apareceram de duas fontes: cinejornais (noticiários exibidos nos cinemas como uma espécie de trailer) e notícias de rádio, isto é, não existia a possibilidade de poder se ver a notícia, apenas escutava-se o conteúdo; em outras palavras emissão radiofónica pela televisão. O surgimento de imagens e voz na televisão veio pouco a pouco, começando com imagens paradas. A partir de 1963 as emissões de noticiários passaram de 15 para 30 minutos e de preto e branco para transmissão a cor.
  • 24. 11 Sexta revolução: A auto-estrada. Os primeiros noticiários sem o uso do papel (excluindo o jornal, rádio e televisão) surgiram no final da década de 1970 através de serviços de base de dados online como o prodigy, que foi desenhado para ser um jornal online nacional nos EUA. Em 1995 oito das maiores companhias jornalísticas dos EUA que eram detentoras de cerca de 185 jornais diários uniram-se para criar uma rede de jornais online nacional e convidaram todos os jornais diários americanos a juntarem-se a eles, o objectivo anunciado era de oferecer a venda de uma vasta variedade de informações: notícias, desporto, venda de bilhetes, e-mail entre outros serviços. No ano de 2002 os blogs já eram uma ferramenta poderosa para divulgação de informação vinda de pessoas simples e não de grandes corporações e que já atraia massas para a visualização do conteúdo apresentado (STUART, 2006). O mesmo autor reporta o aparecimento de serviços de notícias como Wikinews (2004), OhmyNews (2000) e Indymedia (1999) para a geração de notícias denominado por open source news. O princípio destes open source news é de permitir que usuários possam adicionar e modificar notícias autonomamente. Esta última revolução da imprensa conscide com o período pós independência de Moçambique que representa um marco importante no desenvolvimento da imprensa local e subsídios acerca deste período apresentam-se colectados a partir de CHICAVA & POHLMANN (2010). “No ano de 1995 já existiam na Web cerca de 150 jornais e ocorreu uma renovação do design das páginas de notícias, forte inclusão de multimédia, actualizações frequentes de conteúdos e maior busca de lucro por meio de venda de notícias online e o número de jornais online em todo o mundo era de 2959” (NOCI, 2013:253). n
  • 25. 12 De forma breve, pode-se dizer que, durante quinze anos (1975-1990) o cenário da imprensa em Moçambique foi marcado pelo controlo da imprensa por parte do partido político dominante, pela censura e autocensura. As principais lições que devem ser tiradas da apresentação e caracterização sucinta dos meios de comunicação social actualmente existentes em Moçambique referem-se ao facto de serem eminentemente urbanos e de estarem concentrados em Maputo. Actualmente existem cerca de 7 estações de televisão com sinal aberto: TVM 1 e 2, RTP-África, STV, TIM, TV Miramar, SIRT-TV, KTV, TV Maná. Em termos de radiodifusão a Rádio Moçambique é a única com cobertura nacional e a única rádio pública do país embora existem muitas outras rádios em todo o país. No que toca a imprensa escrita existem três jornais diários de circulação nacional: Notícias, Diário de Moçambique e O País (o de maior circulação nacional com 30.00 exemplares). Grande parte da imprensa Moçambicana é difundida apenas em português e nos últimos anos há uma tendência de migração para meios digitais de difusão de notícias principalmente o estabelecimento de websites, algo que não está completamente adoptado pelas agências de notícias. Em síntese, os marcos mais marcantes que podem-se extrair das seis revoluções são a criação da escrita nos anos 3100 AC, a invenção da máquina de Gutemberg que revolucionou a impressão e o surgimento de serviços online de notícias a partir do final da década de 1970. Enquanto que para o contexto moçambicano, é o aparecimento de diversos jornais por volta do século XIX que posuiam como dificuldades principais a falta de tipos e escassez de papel;
  • 26. 13 na actualidade ocorre concentração dos medias nas zonas urbanas principalmente Maputo e adopção deficiente de ferramentas onlines para publicação de notícias. 1.2. CARACTERIZAÇÃO EPISTEMOLÓGICA Quando homens se comunicam usam-se vários meios para que possa ocorrer o entendimento sendo um dos mais importantes a língua. Este tipo de comunicação vai além da fala e da escrita em meios físicos. Com adopção de mecanismos digitais para comunicação, nas ciências de computação surgiu uma área específica para o tratamento de informação linguística o qual denomina-se Processamento de Linguagem Natural (PLN) ou Linguística Computacional. PLN é um campo da ciência de computação e linguística preocupado com a interacção entre computadores e humanos (KUMAR, 2011). É objecto de estudo do PLN a língua natural humana que é usada como parte do processo de comunicação e socialização. O PLN tem como um dos seus principais objectivos fazer com que o computador perceba o que o homem diz e escreve, o problema é que isto é muito complexo e necessita-se de técnicas muito avançadas para que se possa lidar com linguagem humana. O PLN possui muitas aplicações sendo algumas delas a seguintes, seguindo o pensamento de KUMAR (2011):  Sumarização Automática  Geração de Linguagem Natural  Compreensão de Linguagem Natural  Reconhecimento Óptico de Caracteres  Reconhecimento de Fala  EI
  • 27. 14  Simplificação de Texto  Translação de Máquina Dentro desta lista de aplicações que se apresenta, o que importa é a EI por isso, este conceito será alvo de aprofundamento. 1.2.1. Extracção de Informação A cada dia nasce a necessidade de se utilizar a informação de forma como se deseja e esse desejo difere de período para período. Na actualidade a informação tende a apresentar-se maioritariamente na forma digital e existe um grande desafio para o seu manejamento. “Gerenciar e analisar dados sempre ofereceu grandes desafios para organizações de todos os tamanhos e todo o tipo de industria” (HURWITZ, et al., 2013: 9) e para este propósito existe uma área na computação designada EI que se dedica ao estudo e aplicação de técnicas de EI bem como o seu aprimoramento e os diversos processos envolvidos. “Extracção de informação refere-se a extracção automática de informação estruturada como entidades, relacionamentos entre entidades e atributos descrevendo entidades de fontes não estruturadas” (SARAWAGI, 2008:1). “Extracção de informação é definido como qualquer método de análise de amplo volume de textos desestruturados, normalmente na forma de linguagem natural e automaticamente extrair informação destes textos para um modelo pré-definido” (MUGELLINI et al., 2011: 155).
  • 28. 15 Pelo que, apresenta-se um conjunto de elementos que podem identificar a presença do processo da EI ou a necessidade de implanta-lo: CHANG et al. (2001) apresentam uma forma de categorização dos dados para facilitar a sua classificação ou agrupamento:  Estruturados: Como o caso de bases de dados e arquivos BibLATeX para organização de referências biliográficas (ver figura 1).  Semi-estruturados: Arquivos HyperText Markup Language (HTML) e XML.  Desestruturados: Imagens, sons, texto e arquivos executáveis. Figura 1: Arquivo BibLATeX mostrando informação bibliográfica sobre esta monografia. Fonte: Autor Dados estruturados são os que possuem estrutura interna providenciando informação semântica. São concebidos para que se possa extrair informação com facilidade pelo computador; possuem características desenhadas e implementadas para que as regras e procedimentos para a obtenção de informação sejam fácies de conceber e aplicar. Os semi-estruturados geralmente apresentam tags de formatação como o caso de HTML, se as tags facilitam informação sobre a estrutura do documento como em XML pouco ou nenhuma informação semântica pode ser obtida, para além da estrutura de modo a facilitar a troca de informação. Há busca de informação, a resposta da busca é apresentada de forma desestruturada como textos ou imagens, é impossível para humanos processar os dados por causa da quantidade e computadores tem dificuldade de consultar a informação desejada porque não estão armazenados de forma estruturada como uma base de dados. (MOENS, 2006).
  • 29. 16 Dados desestruturados não são baseados em algum tipo de marcação ou estrutura claramente perceptível e a obtenção de informação requer técnicas muito avançadas em relação aos estruturados e semi-estruturados. Apesar da existência da classificação acima apresentada é muito comum na literatura e na internet que apenas dois tipos de dados sejam considerados: os estruturados e desestruturados e estes incluem os semi-estruturados. Tendo em conta esta percepção, os arquivos HTML, XML, documentos do Ms Word e documentos Portable Document Format (PDF) são considerados como desestruturados em vez de semi-estruturados. Por conseguinte, SARAWAGI (2008) considera quatro métodos de EI separados em dois grupos a saber: sistemas codificados manualmente ou baseados em conhecimento e baseados em regras ou estatístico. Sistemas codificados manualmente ou baseados em conhecimento Nos sistemas codificados manualmente pessoas definem as regras, expressões regulares ou ainda fragmentos de programas para a EI. A pessoa a definir estas instruções deve possuir conhecimentos especializados ou ser um programador, é nesta categoria que se enquadra a proposta desta monografia. Por outro lado, Quando se aplica expressões regulares o processo de definição de regras pode ser custoso em termos de complexidade e do tempo e isso também requer um Dados desestruturados não possuem estrutura como colunas e tabelas, uma estrutura representada em árvore [estrutura hierárquica] ou classes e tipos [como no caso de bases de dados orientados a objecto]. Exemplos de dados desestruturados são documentos, imagens (fotos, diagramas e images), áudio (som, discursos e música), vídeo (filme, animação) [sic], texto, e-mails e websites da internet (RAINARDI, 2007).
  • 30. 17 conhecimento maduro do programador principalmente como as expressões regulares são implementadas numa determinada linguagem de programação. De igual modo, elas possuem outra limitação que é de serem realmente úteis para o processamento de texto, FITZGERALD (2012) diz que as expressões regulares são sequências de texto especialmente utilizadas como padrão para encontrar cadeias de texto. Elas podem ser utilizadas para verificar se um determinado input corresponde a um padrão, substituir texto que condiz com um padrão ou para dividir um bloco de texto em partes mais pequenas (LEVITHAN & GOYVAERTS, 2009). Contrariamente aos sistemas codificados manualmente, os baseados em conhecimento necessitam de exemplos rotulados manualmente para treinar modelos de aprendizagem para extracção. De modo que estes sistemas funcionem, é necessário que o usuário introduza um conjunto de dados de treinamento e dali ele passará a realizar as tarefas de forma independente, periodicamente é possível que cometa erros, se tal ocorrer mais treinamento pode ser necessário. Sistemas baseados em regras ou estatísticos Os sistemas baseados em regras são mais fáceis de interpretar e desenvolver em relação aos métodos estatísticos porque estes são mais apropriados a dados desestruturados (complexos), “os métodos de extracção baseados em regras são definidos por regras fixas de extracção enquanto que métodos estatísticos baseiam-se em probabilidades” (DENECKE, 2012: 37). Consequentemente, sistemas baseados em regras são mais úteis onde a interacção humana é constante. As regras podem ser provenientes de sistemas baseados em exemplos (neste caso a criação das regras pode ser de forma automática).
  • 31. 18 As regras são especialmente importantes quando há tarefas como por exemplo extracção de código postal e email, e são mais rápidos e mais fáceis de optimizar; para estes sistemas é possível ter uma base de dados contendo regras de como o sistema deve extrair informação e é possível actualizar o sistema para albergar ainda mais regras. Quanto maior for o número de regras mais recursos computacionais serão necessários e isso tem efeito directo no poder de processamento da informação que se pretende obter. Em domínios abertos como extracção de acontecimentos, factos, extracção de voz ou extracção de opiniões a partir de blogs é necessário implementar métodos estatísticos. ZHANG (2008) afirmam que existem três tarefas básicas no processo de EI que são: Extracção de entidades nomeadas, extracção de relações e extracção de eventos. Extracção de entidades nomeadas Devido a necessidade de se fazer compreensível o que é extraido, colocando a informação em categorias bem claras para simplificar a compreensão ou para que seja facilmente utilizada por programas de computador para um fim específico ou por uma máquina adaptada para algum propósito surge o conceito de entidades nomeadas. Segundo OLSSON (2008) o reconhecimento de entidades nomeadas é a tarefa de identificar e categorizar referências textuais a objectos no mundo tais como pessoas, organizações, companhias e locais. Observe a tabela a seguir para melhor esclarecimento. Campo Descrição Empresa Goolge Apelido Page Cargo Engenheiro de Software Tabela 1: Exemplo fictício de entidades extraídas sobre um funcionário da Goolge. Fonte: Autor.
  • 32. 19 “O reconhecimento de entidades é uma das tarefas mais importantes do campo de Extracção de Informação e se passou a denominar Reconhecimento de Entidades Nomeadas e sua classificação (NERCI)” (SEKINE & RANCHHOD, 2009:3). A extracção de entidades tem como objectivo decidir quando é que um grupo de palavras [designadas alvo] podem ser consideradas partes de uma entidade nomeada (MINER, etal., 2008) de tal modo que ela possui um grande papel no processamento de linguagem natural em áreas como busca de informação, sistemas de provimento de respostas, sumarização automática, etc. (GHOSH, 2009). Extracção de relações Muitas vezes ocorre a nrecessidade de se compreender como é que diferentes objectos ou entidades no mundo real se relacionam, é nesta ordem de ideia que o termo extracção de relações ganha sentido. Quando se fala de relações, basicamente está a se discutir as relações semânticas entre conceitos ou entidades existentes em documentos textuais, palavras chaves, e tags geradas em sistemas de marcação [como XML], isto segundo GREENBERG (2008). O objectivo da extracção de relações é a tarefa de reconhecer a afirmação de uma relação entre duas entidades ou mais (BANKO citado por ÖZYER et al., 2013), um exemplo de uma frase de onde pode-se extrair a relação expressando paternidade (pai e filho) é: Fernando é pai do António. A descoberta de relacionamento entre palavras pode ser onerosa porque requer “muitos exemplos de treinamento” ÖZYER (2013: 50) como efeito, este processo pode ser tedioso para grandes quantidades de dados como dezenas de milhares de documentos. .
  • 33. 20 Por coneguinte, é necessário adoptar mecanismos de aprendizagem automaticos e dinâmicos, e neste sentido surge o conceito de “extracção de relação implícita e explícita” ÖZYER (2013: 50), onde as relações explícitas dependem de treinamento manual enquanto os implícitos baseiam-se na aprendizagem autónoma. Independentemente do tipo de relação a ser extraído os seguintes aspectos devem se ter em conta na perspectiva de GREENBERG (2008):  Um conjunto de dados com relações semânticas para serem extraídas.  Um contexto linguístico onde a relação existe.  Algoritmos para execução automática de processamento das operações. Extracção de eventos Ela é amplamente usada para estudos sobre ocorrências de acidentes, ataques terroristas, estudo de percepção de nível de criminalidade, uso de álcool, compreensão de hábitos de determinados grupos de pessoas e é também aplicada em áreas da ciência como Medicina, Biologia, Historia, Informática, etc. A extracção de eventos tem como propósito extrair eventos a partir de uma determinada fonte de informação sendo a tradicional notícias e ultimamente as redes sociais como Facebook, Twitter, LinkedIn entre outros serviços similares conforme ilustra a tabela seguinte baseado num caso feiticio. Tabela 2: Exemplo de eventos de três usuários do Facebook. Fonte: Autor. Identidade Evento Data Hora João Dançar 22/08/2014 18:15 Mário Rezar 13/08/2014 11:00
  • 34. 21 “Formalmente, a tarefa de extracção de eventos é de automaticamente identificar eventos em textos e prover informação detalhada como quem realizou o evento, quando, com que instrumentos, onde e possivelmente porquê” (KAPETANIOS et al. 2008: 207). A extracção de eventos foi definida como a principal tarefa na extracção automática de informação (MAO & WENG, 2012), contudo ela não tem sido muito estudada e implementada como as outras duas tarefas da EI por causa do nível de complexidade que esta tarefa requer e “[os eventos] geralmente são expressos de forma indirecta [ e ] conhecimento linguístico [demasiadamente] profundo é necessário” (FILLMORE citado por ZHANG, 2008). Para que a actividade de extrair eventos seja bem sucedida muitas é necessário identificar entidades e relações, tornando o processo mais complexo. 1.2.2. Extracção de informação na Web Não existe melhor fonte de informação que a web porque é o local onde muitas pessoas guardam informação pessoal, em formatos distintos de arquivos tais como texto, vídeo, imagem, arquivos de áudio, etc. Segundo O'REGAN (2012) a World Wide Web (WWW) ou simplesmente web foi inventada por Tim Berners-Lee na European Organization for Nuclear Research (CERN) no ano de 1990 na Swiça. O aparecimento da web foi praticamente uma revolução e transformou a internet (a rede mundial de computadores), um dos mais importantes meios de comunicação jamais criado pelo homem (talvez o mais importante). O mesmo autor afirma que o que torna a web revolucionária em relação a outros meio de comunicação são os seguintes aspectos:  Nenhuma organização controla a web  Nenhum computador controla a web  Milhões de computadores estão interconectados
  • 35. 22  É um mercado para milhões de usuários.  A web não se encontra localizado em um local físico.  A web é um espaço e não um local físico. As páginas web são desenvolvidas com a linguagem de programação HTML cuja a última versão é HTML5 baseda no XML que basicamente é constituída por cerca de pouco mais de uma centena de tags que permitem estruturamento de páginas e definição de formatação. O protocolo responsável pela comunicação na internet é Hypertext Transfer Protocol (HTTP), o qual está por detrás de todas requisições de páginas web como expõe WONG (2001:1) “a web serve para distribuir informação sobre a internet”. Veja na figura 2 exemplo de uma transação HTTP. Figura 2: Exemplo de uma transação HTTP. Fonte: SHIFLETT (2003). Para se ter uma ideia mínima de como a internet é usada por pessoas BOONE & KURTZ (2014) afirmam que o número de usuários da internet é de cerca de 2.7 bilhões de pessoas, portanto mais de um terço da população mundial, com este número de usuários a internet torna-se na maior base de dados possuindo todo o tipo de informação sobre as pessoas, daí a fonte mais apetecível para obter informação só pode ser ela.
  • 36. 23 Outro motivo para justificar a necessidade de EI na web é o facto de os navegadores possuírem limitações na exploração de conteúdo da web; o que estas ferramentas fazem é permitir visualização de forma compreensível do conteúdo para que ocorram facilidades na compreensão de informação por humanos e não computadores. SCHRENK (2012) descreve algumas das limitações que os navegadores apresentam que não faculta o processo de EI:  Não permitem filtrar informação de acordo com a sua relevância  Não podem interpretar o que eles processam online  Não podem agir por conta do usuário na obtenção de informação As limitações apresentadas no parágrafo anterior podem ser ultrapassadas atravês da criação de aplicações que se baseando na estrutura das páginas web ou na informação que eles transportam possam adquirir um certo tipo de conteúdo e organiza-los de maneiras que os usuários desejam, este é um passo positivo na exploração da internet; ferramentas que fazem essa tarefa possuem muitas denomições técnicas, entre elas: screen scraper e web scraper. A melhor forma de compreender o que significa web craping é: automação do processo de copy e paste de documentos da web, realizando as mesmas acções que um humano pretende tais como clique de links, escolha do tipo de informação que se deseja, descarregamento de arquivos, preenchimento de formulários, etc. MITCHELL (2013) diz que web scraping é um processo automatizado que involve parsing (análise) de dados para se obter a informação desejada. O web scraper (ferramenta que executa o web scraping) muitas vezes deve conhecer a estrutura da página web da qual ela irá obter a informação. Em numerosos casos as páginas web apresentam um padrão na
  • 37. 24 forma como se estrutura o conteúdo, no caso de um web scraper codificado manualmente esta é uma das chave do sucesso destas ferramentas. A tarefa de conceber web scrapers tem sido simplificada por depuradores de páginas web, que facilitam em muito o entendimento das páginas web através da possibilidade de visualização do código fonte e inspecção dos seus elementos. Para a solução a ser proposta nesta monografia, faz-se uso da ferramenta denominada Chrome Developers Tool (DevTools) que serve para depuramento de aplicações web. Existem algumas tecnologias muito usadas para EI na web que são: Xpath, expressões regulares e selectores CSS. Se um desenvolvedor desejar por algum motivo estudar o código fonte sem recurso a ferramentas sofisticadas criadas para este processo, o ele pode elaborar as árvores Document Object Model (DOM) em representação de código HTML, todavia este é um procedimento não recomendável por causa da possibilidade de cometer erros que é muito ampla. Como já tinha sido referido anteriormente, a EI na web está se tornando muito comum, as ferramentas usadas cada vez mais poderosas; ela também apresenta desafios muito grandes, que por sinal são as suas próprias características e lhe garantem o poder que tem, XU et al. (2010) apontam as seguintes:  Em primeiro lugar, as tags nas páginas web servem para melhorar a apresentação do conteúdo e não a semântica. Sendo assim, são mais apropriados para humanos do que para máquinas ou programas de computadores.  Segundo, páginas diferentes apresentam informação de formas diferentes.  Terceiro, nas páginas web há espaços onde há publicidade, links de navegação, resultados recomendados, feeds de redes sociais, etc.
  • 38. 25  Por último, é possível que páginas com o mesmo padrão possam não apresentar os mesmos atributos. Problema ainda maior que os apontados acima é que muitos websites são concebidos por pessoas com poucos conhecimentos técnicos em desenvolvimento ou engenharia de aplicações web e não seguem cuidadosamente os princípios de design e programação das diversas tecnologias web cometendo “erros graves”, interessando-se apenas com o resultado que o navegador exibirá; olhando as coisas nesta perspectiva é racionalmente aceitável concluir que estes problemas dificilmente poderão desaparecer por causa do “abuso” das enormes facilidades existentes para construir páginas web e faze-las acessíveis na internet. STUART (2006) apresenta uma taxonomia para classificação das ferramentas de EI na web das quais as seguintes serão alvo de abordagem: linguagens para desenvolvimento de wrappers (programas para EI), ferramentas com conhecimento de HTML, ferramentas baseadas em PLN e ferramentas de indução de wrappers. Linguagens para o desenvolvimento de wrappers Uma das primeiras soluções para o endereçamento do problema de geração de wrappers foi o desenvolvimento de linguagens específicas para ajudar os usuários a conceberem wrappers. Estas linguagens foram propostas como alternativas a linguagens de propósito geral como Java e Perl que já realizavam esta tarefa a bastante tempo, algumas das linguagens para este propósito são: Minerva e WebOQL. Ferramentas com conhecimento de HTML Constam deste grupo ferramentas que se baseiam na estrutura do HTML para realizarem a EI, antes de começarem a realizar as tarefas estas ferramentas transformam as páginas web em árvores para análise (parsing tree), uma representação que reflecte a
  • 39. 26 hierarquia de tags HTML, como o caso da livraria a Simple HTML DOM, a ser utilizada na elaboração da proposta. Ferramentas baseadas em PLN O PLN é usado por diferentes ferramentas para aprendizagem das regras de extracção para EI em documentos de linguagem natural, estas ferramentas usam regras baseadas em análise sintáctica e semântica que ajuda a identificação de informação relevante em documentos. Ferramentas de indução de wrapper Estas ferramentas geram regras de extracção a partir de treinamento por um conjunto de exemplos. A diferença entre estas ferramentas e as baseadas em PLN é que estas não precisam de informação sobre o PLN, mas sim informações que os mesmos apresentam que implicitamente delimitam a estrutura dos dados encontrados. Neste capítulo, a tendência histórica da a entender que o surgimento dos primeiros serviços online de notícias ocorreu a partir do final da década de 1970 que culminou com o surgimento de ferramentas designadas open source news e blogs nos anos 2000 bem como melhoramentos no design dos websites de notícias neste período, enquanto que em Moçambique a adopção destas ferramentas é lenta na actualidade. Por outro lado, a caracterização epistemológica argumenta que a EI possui 4 métodos sendo a codificação manual implementado pelo sistema proposto para a monografia, e também fornece uma taxonomia para classificação de ferramentas de EI onde introduz-se conceitos como ferramentas para o desenvolvimento de wrappers, ferramentas com conhecimento de HTML, ferramentas baseadas em PLN e ferramentas de indução de wrappers.
  • 40. 27 CAPÍTULO 2. DESENVOLVIMENTO DA PROPOSTA: WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS Neste capítulo apresenta-se a menção das fontes de notícias utilizadas incluindo uma breve descrição de cada uma delas, requisitos funcionais e não funcionais do sistema, os diferentes diagramas da Engenharia de Software, a arquitectura do sistema baseada na abstracção de três camadas, a implementação (apresentação das ferramentas tecnológicas empregues) divididas em front end e back end e por último o manual do usuário. 2.1. FONTES DE NOTÍCIAS As fontes de notícias são os websites usados para fornecimento de conteúdo por este sistema que numa primeira altura buscará notícias de cinco fontes. Mais fontes podem ser adicionadas além das actuais, desde que estejam ligadas a órgãos de informação sérios cujo conteúdo seja frequentemente actualizado e reúnam consenso por parte do desenvolvedor e/ou usuários. É necessário apresentar esclarecimento sobre as fontes porque isto ajuda de certa forma a dar conhecimento sobre o tipo de notícia que o usuário terá acesso e este esclarecimento pode servir de referência para introdução de mais funcionalidades e outras fontes de notícias. Após o provimento de alguma informação acerca de cada fonte fornece-se a Uniform Resource Locator (URL) utilizada para extrair notícias recentes no website de cada fonte.
  • 41. 28 Agência de Informação de Moçambique (AIM) É uma agência que pertence ao estado Moçambicano com o fim de produzir informação diversificada para a sociedade moçambicana, ela faz publicações na língua portuguesa e inglesa. A sua sede encontra-se localizada na cidade de Maputo, na capital Moçambicana e a URL desta fonte é: http://noticias.sapo.mz/aim/. A verdade Online É um jornal online moçambicano, criado com o intuito de difundir informação a sociedade moçambicana tendo como uma das características oferta de conteúdo grátis e sem publicidade ao público-alvo. O grupo que gere este jornal é uma organização sem fins lucrativos que semanalmente imprime milhares de exemplares e os distribui por diversas áreas de Moçambique. A sua sede encontra-se localizada na capital moçambicana Maputo, esta fonte esta disponível nesta URL: http://www.verdade.co.mz/newsflash/. Jornal Notícias É um jornal privado de circulação nacional propriedade do grupo Sociedade do Notícias, SA. Como as outras fontes de notícias é um dos jornais mais lidos de Moçambique na sua forma física, com conteúdo de bastante qualidade. O website do jornal notícias localiza-se pela seguinte URL: http://www.jornalnoticias.co.mz/. Sapo Notícias Este é um website informativo do portal Sapo Moçambique que providencia informação diversificada. O Sapo é um dos maiores grupos de media digital de Moçambique e o seu portal é um dos mais visitados. Parte do conteúdo desta fonte são do website do jornal O País pertencente a um dos maiores jornais em circulação em Moçambique denominado O
  • 42. 29 País que é propriedade do principal grupo de imprensa local, o grupo Sociedade Independente de Moçambique (SOICO), esta fonte é acessada a partir da URL: http://noticias.sapo.mz/. Portal do Governo de Moçambique Este é oficialmente o portal do Governo da República de Moçambique, um projecto que é gerido e desenvolvido pelo Instituto Nacional de Tecnologias de Informação e Comunicação de Moçambique em conjunto com outros ministérios e instituições governamentais contendo informação diversificada acerca do governo moçambicano e de Moçambique, na sua maioria os conteúdos noticiosos são acerca do país. Esta fonte pode ser localizada visitando a URL: http://www.portaldogoverno.gov.mz/news/. 2.2. ENGENHARIA DE REQUISITOS Os requisitos de um sistema permitem a descrição do que o mesmo deve fazer, não deve fazer e como ser feito. Tendo em vista a necessidade da sua especificação, os mesmos apresentam-se divididos em duas categorias que são funcional e não funcional, portanto “o processo de procurar, analisar, documentar e fazer a verificação dos diversos serviços a serem implementados e as suas restrições denomina-se engenharia de requisitos” (SOMMERVILLE, 2011). 2.2.1. Requisitos funcionais Os requisitos funcionais (RF) são especificações do que o software deve ou não fazer e exprimem funcionalidades, os mesmos estão apresentados abaixo nas suas respectivas tabelas, divididos em duas categorias nomeadamente: interface do usuário e apresentação do conteúdo e serviços a serem oferecidos ao usuário.
  • 43. 30 Ref. Requisito RF 01 -Na página inicial deve aparecer uma lista com o nome das fontes de notícias incluindo uma imagem que os identifica no lado esquerdo. RF 02 -O sistema deve possuir uma barra de ferramentas no topo de cada página que possuirá botões de navegação excepto para a página inicial. RF 03 -Em todas as páginas deve haver um mecanismo de acesso a página inicial (preferencialmente botões presentes na barra de ferramentas). RF 04 -O usuário deve ser providenciado com pouca informação (apenas o essencial) para evitar distracção e perca de foco. RF 05 -O conteúdo deve ser de boa visibilidade (letras e imagens claramente visíveis). RF 06 -A interface deve ser desenvolvida primeiramente para dispositivos móveis (mobile first development) com telas sensíveis a toque, mas deve adaptar-se visualmente a electrônicos da categoria Personal Computer (PC) através do emprego do responsive design. RF 07 -A interface do sistema deve ser leve de modo a minimizar ao máximo possível o tempo do carregamento das páginas. RF 08 -No caso de algum erro o sistema não deve apresentar detalhes técnicos referente a causa do problema, uma mensagem curta será fornecida. RF 09 - Quando o conteúdo demorar carregar por algum motivo deve-se apresentar uma animação ao usuário para o mesmo compreender que o carregamento da página ainda continua. Tabela 3: Interface gráfica do usuário e apresentação do conteúdo. Fonte: Autor
  • 44. 31 Ref. Requisitos RF 10 - O usuário deve possuir a possibilidade de pesquisar as fontes de notícias que pretende acessar de modo a facilitar a sua localização; esta funcionalidade deve estar presente na página inicial. RF 11 -O sistema deve buscar as últimas noticias de cada fonte de informação e fazer a entrega ao usuário sem que este influencie de forma alguma como este processo ocorre. RF 12 -O aparecimento de novo conteúdo deve depender inteiramente de terceiros porque os mesmos é que produzem as notícias. RF 13 - O usuário deve ter acesso a visualização da lista de notícias para cada uma das fontes. RF 14 -Caberá ao usuário escolher que notícia pretende ler e por quanto tempo. RF 15 -O sistema deve apresentar um campo para que o usuário possa ter oportunidade de fazer comentários sobre a notícia que lê por meio de alguma rede social (Facebook). RF 16 -O servidor não deve armazenar informação a não ser arquivos de código fonte do sistema pois o objectivo é de servir de intermediário entre o usuário e as fontes de notícias. RF 17 -Nenhum tipo de input será providenciado ao usuário (textfieds, radioboxes, etc.) para além do campo de pesquisa e comentários. RF 18 -No final de todas as páginas deve haver links que permitam o usuário ter acesso a informação sobre o website (acerca e contactos) Tabela 4: Serviços a serem oferecidos ao usuário. Fonte: Autor.
  • 45. 32 2.2.2. Requisitos não funcionais Diferentemente dos RF, os requisitos não funcionais (RNF) estão apresentados em categorias mais detalhadas devido a complexidade da sua implementação e da relevância que os mesmos possuem sobre o sistema, eles representam aspectos cuja não implementação pode por em causa a usabilidade do sistema; daí uma categorização refinada possibilita o seu esclarecimento e compreensão, bem como a possibilidade de implementação dos RF. Por conseguinte, estes requisitos encontram-se divididos nas categorias a mencionar: componentes de software e linguagem de programação, performance, ferramentas de desenvolvimento, licença, interface de comunicação, uso do produto, armazenamento de informação, segurança, fontes de notícias, acesso, hospedagem e outros RNF. Os quais explicam-se a seguir nas suas devidas tabelas. Ref. Requisitos RNF 01 A parte de back end deve ser desenvolvida implementando a linguagem de programação PHP5. RNF 02 O processo de extracção de notícias deve ser garantido pela livraria Simple HTML DOM. RNF 03 A parte de front end deve ser implementada usando as linguagens HTML5, CSS3 e Javascript incluindo a utilização da livraria Jquery mobile. RNF 04 A parte responsável pelo acesso a rede e os documentos HTML deve ser implementada com auxílio da extensão cURL para a linguagem PHP. Tabela 5: Componentes de software e linguagem de programação. Fonte: Autor.
  • 46. 33 Ref. Requisitos RNF 05 Poucos pedidos HTTP devem ser feitos pelos dispositivos clientes ao servidor de modo a minimizar o tráfego e consequentemente melhor performance, isto será possível através da minimização do número de scripts a serem produzidos (no máximo três arquivos de código fonte PHP para cada fonte de informação). RNF 06 Cada página deve idealmente levar no máximo seis segundos ou menos a carregar RNF 07 Durante a conexão a sites externos deve haver suporte de redireccionamento no número máximo de quatro (4). RNF 08 Para reduzir o tempo de descarregamento de dados deve-se implementar o prefetch2 para todos as âncoras presentes em todos arquivos de código fonte. RNF 09 A performance dependerá em muito da conexão do dispositivo que se conectará a internet e da disponibilidade dos serviços de notícias a serem acessados. RNF 10 A performance dependerá em muito de componentes de hardware do servidor e dos clientes. RNF 11 O tempo de execução das páginas em muito dependerá das capacidades do navegador em relação ao nível de suporte destas tecnologias: javascript, Ajax e CSS3. Tabela 6: Performance. Fonte: Autor. Ref. Requisito RNF 12 O código fonte a ser produzido será feito com a ferramenta para desenvolvimento Aptana Studio ou Sublime text. 2 Prefetch: Pré carregamento de páginas web, antes do usuário as requisitar por meio de um click de link ou acção equivalente.
  • 47. 34 RNF 13 O sistema operativo na fase de desenvolvimento deve ser o Windows 7 Ultimate Edition. RNF 14 A análise do desempenho dos scripts e tempo de carregamento de páginas será com o auxílio da ferramenta DevTools. Tabela 7: Ferrementas de desenvolvimento. Fonte: Autor Ref. Requisito RNF 15 A licença sobre qual o software está sujeito é o apache license, sendo o código fonte aberto e deverá ser acessível por meio do Github3 após a conclusão da implementação do projecto. Tabela 8: Licença. Fonte: Autor. Ref. Requisito RNF 16 O sistema durante a comunicação utilizará o protocolo http RNF 17 A porta a ser utilizada para as comunicações é 80 Tabela 9: Interface de comunicação. Fonte: Autor. Ref. Requisito RNF 18 Para uso do sistema o usuário não precisa de treinamento, sendo suficiente o conhecimento elementar do uso do computador e navegação de páginas da internet. Tabela 10: Uso do produto. Fonte: Autor. 3 https://github.com/Manguena/webscraperdenoticiasmono/
  • 48. 35 Ref. Requisito RNF 19 Não deve-se armazenar nenhum tipo de informação sensível do usuário (e-mail, número de telefone, endereço IP, etc.). Tabela 11: Armazenamento de informação. Fonte: Autor Tabela 12: Segurança. Fonte: Autor Ref. Requisitos RNF 21 As fontes de notícia devem ser websites de informação que apresentam o seu conteúdo utilizando a linguagem de programação HTML, de preferência a sua última versão (HTML5). RNF 22 As páginas web das fontes de notícia serão analisadas utilizando a ferramenta de desenvolvimento DevTools. RNF 23 O sistema deve ser construído de forma a facilitar a inclusão ou remoção de outras fontes de notícias no futuro. Tabela 13: Fontes de notícias. Fonte: Autor. Ref. Requisito RNF 24 Pessoas de qualquer idade e de qualquer parte do mundo podem acessar o sistema por mais que o foco sejam cidadãos moçambicanos. RNF 25 O sistema deve estar acessível a 99.999% do tempo. Ref. Requisito RNF 20 A princípio, devido a natureza deste sistema a segurança deve estar no servidor onde ele será hospedado.
  • 49. 36 RNF 26 O tempo de timeout para a conexão a servidores externos para busca de notícias é de 10 segundos Tabela 14: Acesso. Fonte: Autor Ref. Requisito RNF 27 A hospedagem deve ser feita em servidores da internet que operam algum sistema operativo da família Linux. RNF 28 Os servidores para hospedagem devem ser Ngix ou Apache. Tabela 15: Hospedagem. Fonte: Autor Ref. Requisito RNF 29 Fontes a serem usadas devem ser web safe fonts. Tabela 16: Outros RNF. Fonte: Autor. 2.3. DESENHO DO SISTEMA Em relação ao desenho do sistema, apresenta-se um conjunto de diagramas da Engenharia de Software que posteriormente determinarão como o processo de implementação decorrerá. Todos os diagramas foram criados utilizando a aplicação online denominada Creately4 . 2.3.1. Diagrama de caso de uso De uma forma simples o diagrama de caso de uso descreve as funcionalidades de um sistema ilustrando o escopo e os cenários em que o mesmo interage com diversos actores. Para este sistema, um diagrama de caso de uso (ver figura 3) é suficiente para ilustrar os 4 https://creately.com/
  • 50. 37 actores e os diferente cenários onde os mesmos estarão envolvidos. A descrição textual dos casos de uso é considerada como sendo muito importante, por isso após o diagrama tem-se a sua respectiva especificação. Figura 3: Diagrama de caso de uso indicando acesso e fornecimento de notícias. Fonte: Autor. Especificação dos casos de usos Caso de uso: Ver listas de notícias de cada fonte.  ID: 1.  Breve descrição: Ver a lista de notícias recentes que cada fonte de notícia possui de modo que o usuário escolha que notícia pretende ler.  Actores primários: Internauta.  Actores secundários: Nenhum.  Pré-condição: O usuário escolhe a fonte de notícia de onde pretende se informar.
  • 51. 38  Fluxo de eventos principais: 1. Da página inicial o usuário escolhe a fonte de notícia que pretende. 2. O item seleccionado ou clicado pelo usuário ganha foco por alguns milissegundos. 3. Uma animação indicando carregamento de página aparece. 4. O sistema vai para o website correspondente a fonte de notícia e busca os últimos títulos de notícias. 5. O sistema preenche a lista com os títulos das últimas notícias para o usuário.  Pós-condição: O usuário tem acesso a lista de notícia actualizada para cada fonte de notícia.  Fluxo alternativo:  Nenhum. Caso de uso: Pesquisar fonte de notícia  ID: 2  Breve descrição: O usuário pesquisa as fontes de notícias de modo a escolher de que fonte ele pretende estar informado.  Actores primários: internauta.  Actores secundários: nenhum.  Pré-condição: o usuário deve estar na página inicial do sistema.  Fluxo de eventos principais: 1. O usuário digita o endereço do website do sistema no navegar do seu dispositivo móvel. 2. O usuário escolhe o campo de pesquisa.
  • 52. 39 3. O usuário escreve o texto que pretende pesquisar e pressiona o botão de pesquisa ou pressiona a tecla enter. 4. O sistema proporciona uma lista de fonte(s) de notícia(s) de acordo com a pesquisa efectuada pelo usuário.  Pós-condição: O sistema lista as fontes de notícias consoante a pesquisa.  Fluxo alternativo:  Após a introdução do texto que pretende pesquisar, o usuário pode optar por cancelar a pesquisa pressiondo o botão “X”, daí o sistema lista todas as fontes de notícias  Se o usuário não pretender fazer pesquisa das fontes das notícias o mesmo pode aceder directamente o conteúdo da fonte a partir da lista providenciada na página inicial. Caso de uso: Obter informação sobre o sistema.  ID: 3.  Breve descrição: O usuário obtém informação sobre o(s) desenvolvedor(es) do sistema e o próprio sistema (contacto, objectivo do sistema e descrição do mesmo).  Actores primários: Internauta.  Actores secundários: Nenhum.  Pré-condição: O usuário deve visitar qualquer página do sistema.  Fluxo de eventos principais: 1. O usuário visita a página do sistema que pretende. 2. O usuário navega para o final da página. 3. Escolhe que tipo de informação que pretende. 4. O usuário lê a informação disponibilizada pelo sistema.  Pós-condição: O sistema apresenta a informação pretendida pelo usuário.
  • 53. 40  Fluxo alternativo:  Nenhum. Caso de uso: Fazer comentários  ID: 4  Breve descrição: O usuário posta comentários sobre a notícia que lê no widget providenciado do Facebook.  Actores primários: Internauta.  Actores secundários: Nenhum.  Pré-condição: O usuário deve estar na página de notícias e ter feito login na sua conta da rede social Facebook.  Fluxo de eventos principais: 1. O usuário acessa a notícia que deseja ler. 2. O usuário selecciona o campo de comentários no Facebook. 3. O usuário escreve o comentário que pretende deixar no website, pressiona o botão de comentário ou a tecla enter. 4. O comentário fica visível a outros leitores de notícias.  Pós-condição: comentário apresentado.  Fluxo alternativo:  Nenhum Caso de uso: Acessar notícias.  ID: 5.  Breve descrição: O usuário acede as notícias de modo a ler o seu conteúdo e manter- se informado.  Actores primários: Internauta.
  • 54. 41  Actores secundários: Nenhum.  Pré-condição: O usuário deve escolher a notícia que deseja ler a partir da lista de títulos de notícias de acordo com a fonte.  Fluxo de eventos principais: 1. O usuário selecciona a notícia que pretende a partir da lista actualizada de notícia para uma determinada fonte. 2. O sistema faz a devida busca da notícia e extracção de todo conteúdo necessário. 3. Ocorre a apresentação da notícia.  Pós-condição: A notícia é apresentada ao usuário.  Fluxo alternativo:  O usuário pode voltar a acessar a lista de notícias através do botão que se encontra no topo da página no lado direito.  O usuário pode aceder a página inicial através do botão que se encontra no topo da página no lado esquerdo. Caso de uso: Fornecer notícias.  ID: 6.  Breve descrição: A fonte de notícia é que produz e publica as notícias que serão acessadas no sistema.  Actores primários: fonte de notícia.  Actores secundários: nenhum.  Pré-condição: A fonte de notícia deve ser acessada pelo sistema.  Fluxo de eventos principais: 1. Include („Produzir notícia‟). 2. Publicar as notícias na internet.
  • 55. 42  Pós-condição: As notícias publicadas ficam acessíveis na internet para os internautas e são extraidas pelo sistema.  Fluxo alternativo:  Nenhum. Caso de uso: Disponibilizar notícias.  ID: 7.  Breve descrição: O sistema é que disponibiliza ao usuário notícias a partir da fonte.  Actores primários: Sistema.  Actores secundários: Nenhum.  Pré-condição: Acessar o website do sistema e aceder as notícias.  Fluxo de eventos principais: 1. Include („Fornecer notícia‟). 2. O sistema busca notícias na fonte por requisição de cada usuário, utilizando os algoritmos que ele possui para cada fonte.  Pós-condição: O sistema extrai com sucesso a notícia e faz o processamento adicional.  Fluxo alternativo:  Nenhum. Caso de uso: Aceder fontes de notícias.  ID: 8.  Breve descrição: O usuário possui a possibilidade de aceder a fonte da notícia que ele lê.  Actores primários: Internauta.  Actores secundários: Nenhum.
  • 56. 43  Pré-condição: Acessar o website do sistema e aceder as notícias.  Fluxo de eventos: 1. O usuário acessa a página de notícias. 2. O usuário pressiona no link que lhe direccionará ao website correspondente a fonte da notícia que o mesmo estiver a ler.  Pós-condição: O usuário acede com sucesso a fonte de notícia.  Fluxo alternativo:  Nenhum. 2.3.2. Diagrama de deployment O diagrama de deployment modela a arquitectura física do sistema e pode ser visualizado na figura a abaixo, nele está patente o relacionamento entre os componentes de software e hardware e a distribuição física do processamento. Figura 4: Diagrama de deployment do sistema. Fonte: Autor No diagrama existem três nós: um que corresponde ao cliente, o sistema e a fonte de notícia consecutivamente. Na parte do cliente ele precisa de um navegador para poder se
  • 57. 44 comunicar com o sistema através da conexão sobre o protocolo HTTP na porta 80 que se encontra hospedado em um servidor web com PHP5.x e faz as a entrega das requisições do usuário através de busca de informação num terceiro servidor (fonte de notícia) extraindo conteúdo de páginas HTML, sendo também a conexão efectuada sobre o protocolo HTTP na porta 80. 2.3.3. Diagrama de componentes O diagrama de componentes é utilizado para modelar aspectos físicos do sistema como livrarias, executáveis, arquivos, documentos, etc. aplicado para a visualização da organização e relacionamento entre os diferentes componentes do sistema, este diagrama também pode ser descrito como uma visão estática da implementação de um sistema. A implementação estática representa a organização dos componentes num momento particular, conforme pode-se observar na próxima figura. Figura 5: Diagrama de componentes ilustrando a dependência entre diferentes componentes do sistema. Fonte: Autor.
  • 58. 45 Este diagrama apresenta dois tipos de arquivos sendo o primeiro com extensão .php e o outro com extensão .html e a relação de dependência entre os arquivos fontes a serem produzidos durante a fase de implementação do sistema. O componente index.html depende de cinco componentes que são sapo_list.php, verdade_list.php, portgov_list.php, jnoticias_list.php e aim_list.php e por sua vez estes componentes dependem de outros cinco componentes e enquanto dependem são necessitados por outros cinco componentes abaixo deles. O diagrama apresentado anteriormente não é suficiente para representar todos os componentes relevantes do sistema daí a necessidade de se ilustrar o diagrama abaixo; ele mostra as interfaces de programação para aplicações (APIs) utilizadas para acessar a rede, extrair notícias e processamento de codificação de caracteres. Detalhes da implementação destes componentes serão apresentados mais adiante. Figura 6: Diagrama de componentes apresentando as APIs utilizados pelo sistema. Fonte: Autor. 2.4. ARQUITECTURA Conceptualmente o sistema foi concebido como sendo constituído por três camadas com funções distintas que são: Camada de apresentação, regras de negócio e camada de dados, conforme pode-se observar na figura 7.
  • 59. 46  Camada de apresentação: Estão incluídos todos os componentes para visualização do conteúdo pelo usuário (a parte correspondente a interface gráfica) cujo principal objectivo é o provimento de um meio de comunicação com o sistema de modo a faze- lo sujeitar-se as necessidades do usuário.  Regras de negócio: Esta é a camada do meio onde ocorre o processamento intermediário de dados entre a camada de apresentação e de dados.  Dados: Esta camada representa os recursos em termos de APIs que permitem acesso à fonte de informação digital que são os websites de notícias utilizados, esta é a parte que corresponde ao processo de extracção de notícias propriamente dito e pode considerar-se como sendo o “coração” do sistema. Apresentação Dados Regras de negócio Primeira camada Segunda camada Terceira camada Figura 7: Arquitectura de três camadas do sistema. Fonte: Autor.
  • 60. 47 2.5. IMPLEMENTAÇÃO DO SISTEMA Nesta secção apresenta-se as ferramentas empregues durante a fase de desenvolvimento principalmente a livraria implementada na linguagem PHP para EI na internet que ajuda a perceber como foi feito o processo de web scraping (ver capítulo 1). 2.5.1. Desenvolvimento back end De forma simplificada desenvolvimento back end significa desenvolvimento do lado do servidor, e como já tinha sido referido nos RNF, a tecnologia a ser utilizada é o PHP5, cujos detalhes de implementação estão clarificados já a seguir. Extracção de notícias O Simple HTML DOM para PHP5 permite o usuário fazer web scraping com o uso de selectores CSS e ela é baseada no projecto HTML Parser for PHP-45 , o motivo da escolha desta livraria é a sua simplicidade e existência de uma documentação facilmente compreensível o que permite o seu uso sem grandes dificuldades. Algumas das suas maiores qualidades são o suporte de HTML inválido, possibilidade de extracção de conteúdo HTML com poucas linhas de código, uso de selectores CSS, ser open source, possuir uma vasta comunidade de usuários e é recomendada o seu uso por algumas bibliografias como por exemplo TURLAND (2010), fóruns e artigos da internet. Esta livraria é responsável por extrair notícias dos diferentes páginas web para que as mesmas possam ser oferecidos aos usuários do sistema. A próxima figura mostra exactamente o código fonte retirado do sistema para extracção de links para títulos de notícias da AIM. 5 http://php-html.sourceforge.net/
  • 61. 48 Figura 8: Extracção de links para títulos de notícias da AIM. Fonte: Autor. Linha 13: No loop foreach, a variável $html possui a página web da AIM, e nela extrai-se todo código HTML cujo elemento é a tag <ul> e possui como atributo o id=’news’, em cada iteracção o resultado é passado para a variável $elms. Linha 15: O loop foreach faz busca na variável $elms e extrai todo código HTML cujo elemento é uma lista <li> e tem como elemento filho <span> que possua o id=’title’. Em cada iteracção o resultado é colocado na variável $elmi; neste caso o resultado que retorna são âncoras. Linhas 17 e 18: Neste último loop procura-se todas as âncoras que a variável $elmli possuia e extrai-se o link, sendo o resultado armazenado na variável $linksArm onde se cria uma URL completa com a inclusão do domínio. Linha 27: Todos os links que a variável $linksArm possui são retornados para uma outra função que faz processamento adicional. A próxima figura é o trecho de código fonte para a extracção de títulos de notícias e não necessita de muito esclarecimento devido a semelhança com o código anterior, a novidade consta na linha 51.
  • 62. 49 Figura 9: Extracção de títulos de notícias do website da AIM. Fonte: Autor. Linha 51: a expressão $cab->plaintex indica a extracção de texto que corresponde aos títulos das notícias que se encontram armazenadas na variável $cab, esta computação ocorre no primeiro parâmetro da função mb_convert_encoding(), que é utilizada para providenciar suporte a caracteres de língua portuguesa que possuem acentos e outros símbolos. Esta função é parte de uma extensão em PHP denominada mbstring, ela serve para ultrapassar problemas resultante do manipulamento de caracteres, cujo tamanho da palavra excede 1 byte (8 bits), como o caso de palavras acentuadas na língua portuguesa. O mbstring é uma extensão que não aparece por defeito inserida no PHP o que implica a sua instalação antes do seu uso, mas felizmente para o desenvolvimento deste sistema não foi necessário tal procedimento porque o servidor Wampserver já o possui instalado, dai foi apenas necessário activa-lo. Na próxima figura está patente a criação de âncoras contendo títulos de notícia e os respectivos links para a AIM.
  • 63. 50 Figura 10: Criação de âncoras contendo títulos de notícias e os seus respectivos links para AIM. Fonte: Autor. Linha 42 e 43: definição de duas variáveis que recebem os títulos de notícias e os links respectivamente. Linhas 46 a 54: enquanto as variáveis $cabecalho_aim e $link_aim possuírem conteúdo deve-se criar âncoras dentro de uma lista <li> contendo o título de uma notícia e o seu respectivo link. Acesso a rede Para que o sistema possa ter acesso a rede de modo a aceder os websites de notícias para extrair conteúdos faz uso da extensão cURL para PHP. O cURL possui uma API pequena que basicamente consiste de chamadas de funções contendo as configurações de rede desejadas. Veja a seguir o código implementado para o sistema. Figura 11: Uso do cURL para PHP no sistema. Fonte: Autor.
  • 64. 51 2.5.2. Desenvolvimento front end O desenvolvimento front end corresponde a parte da interface do usuário num sistema baseado na web e usaram-se as linguagens HTML5, CSS3 e Javascript com amplo auxílio da livraria JQuery mobile. Esta livraria permite através do uso da programação declarativa construir páginas web responsivas para dispositivos móveis o que permitirá que as páginas criadas funcionem em uma ampla variedade de dispositivos móveis incluindo dispositivos que não sejam móveis. A implementação deste software no sitema pode-se observar logo abaixo. Figura 12: Trencho de código HTML para a página inicial implementando JQuery mobile no sistema. Fonte: Autor. 2.6. MANUAL DO USUÁRIO Nesta secção faz-se uma explicação acerca de como utilizar o sistema desenvolvido, na perspectiva do usuário. Para a criação do manual foram utilizadas imagens obtidas a partir da emulação da plataforma móvel Samsung Galaxy SIII com o uso da ferramenta DevTools.
  • 65. 52 2.6.1. Página inicial A página inicial (ver figura 13) possui navegação em listas onde cada item dá acesso a uma fonte de notícia, apresentando do lado esquerdo imagens e do lado direito uma seta sugerindo continuidade de acesso ao conteúdo após a escolha efectuada pelo usuário. O campo de pesquisa permite que haja acesso a fontes das notícias que o usuário pretende por meio de uma lista reduzida, consoante o termo por ele pesquisado conforme pode-se observar na segunda imagem da figura abaixo. Quando clicada a imagem na forma de um “X” o campo de pesquisa fica vazio e a lista de navegação volta ao seu estado inicial (com cinco fontes de notícias). Figura 13: Página inicial. Fonte: Autor.
  • 66. 53 2.6.2. Lista de notícias Depois de aceder a página inicial e ter acesso às fontes de notícias, o usuário será direccionado a uma outra página onde encontrará uma lista de notícias recentes identificadas pelos respectivos títulos, a lista a ser disponibilizada é completamente dependente de cada fonte, sendo assim está garantido o acesso a material informativo diversificado e bastante rico, com hipótese de se encontrar a mesma notícia em diversas fontes narradas de formas diferentes. A lista pode ser visualizada na próxima figura. As listas de notícias apresentam as mesmas características que a listagem da página inicial excluindo o uso de imagens que não é necessário. Cada lista tem o seu próprio nível de detalhes sobre a notícia que ela oferece. Por exemplo, na figura é possível constatar que Sapo Figura 14: Lista de notícias para Sapo notícias (esquerda) e AIM (direita). Fonte: Autor.
  • 67. 54 notícias apresenta informação sobre o dia e hora em que cada notícia foi publicada enquanto que a AIM indica nalgumas vezes a origem da sua própria notícia e as letras são maiúsculas. No topo das páginas existe um botão que permite o acesso a página inicial. Com a orientação do dispositivo móvel no modo “normal” (portrait mode) é possível que os títulos de notícias apareçam em várias linhas se o mesmo for muito longo, este cenário pode mudar caso for alterado a orientação para landscape mode (ver figura 15). 2.6.3. Notícias Se o usuário seleccionar uma das notícias da lista de notícias ele será direccionado para a terceira página onde poderá ler o conteúdo que deseja. No final da página também é apresentado a possibilidade de fazer comentários através do widget do Facebook (ver figura 17) embutido na aplicação e acesso as fontes originais de notícias para o caso de ocorrer a necessidade de realização desta acção. Consequentemente, uma nova aba será aberta para não permitir que o usuário deixe de visualizar o conteúdo a partir do sistema uma vez que as notícias estão adaptadas para dispositivos móveis situação essa que pode não ser uma característica das fontes de notícias. Para fazer uma apreciação de como notícias são apresentadas observe a próxima figura. Figura 15: Lista de notícias da AIM com o telemóvel em landscape mode. Fonte: Autor.
  • 68. 55 Figura 16: Visualização de uma notícia da AIM. Fonte: Autor. No topo da página o usuário é apresentado duas opções sendo a primeira no lado esquerdo para voltar a página inicial e a segunda no lado direito para aceder a lista de notícias para a mesma fonte de informação. A forma como a notícia é apresentada e o tipo de informação adicional oferecido depende da fonte de notícia, neste caso a AIM fornece a data da publicação e a hora no primeiro parágrafo depois do título, algumas fontes podem o fazer ocasionalmente ou nunca o fazem; outras podem apresentar erros ortográficos ocasionalmente, muitos ou poucos parágrafos, etc. e estes aspectos estão fora do controle deste sistema, mesmo que a intenção seja de satisfazer o usuário e proporcional uma experiência única e confortável. Figura 17: Link para acesso a fonte de notícia (AIM) e comentários no fim da notícia. Fonte: Autor.
  • 69. 56 Como conclusão, é certo afirmar que o desenho elaborado é ideal ao sistema e os requisitos especificados são suficientes e apropriados para satisfazer o usuário em termos de funcionalidades. Fazendo uma apreciação do manual do usuário, chega-se a conclusão que a interface do sistema de facto é intuitiva com características muito próximas a de uma aplicação nativa e o usuário não precisa de ter acesso a uma instrução para poder utiliza-lo, mesmo que ele tenha limitações no domínio de sistemas web ou uso de aplicações de informáticas duma forma geral.
  • 70. 57 CAPÍTULO 3. RESULTADOS E CONCLUSÃO Neste capítulo apresenta-se a discussão dos resultados obtidos seguido pelos trabalhos futuros onde se propõe melhorias no sistema como forma de continuidade deste projecto e por último a conclusão da monografia. 3.1. RESULTADOS Os resultados da monografia apresentam-se por capítulos, a considerar: O primeiro capítulo (caracterização epistemológica) e o segundo capítulo (a proposta). No primeiro capítulo, a tendência histórica permite enquadrar o historial da imprensa de Moçambique em duas das seis revoluções dos meios de comunicação em massa que são: A terceira revolução que corresponde com o princípio da imprensa local no período colonial por volta no século XIX e a sexta revolução que corresponde com a imprensa moçambicana no período pós colonial até a actualidade. A seguir, a literatura científica permitiu a fundamentação epistemológica desta monografia para se possuir um profundo conhecimento e desse modo a realização da escolha do método de EI a ser aplicado para a projecção da ferramenta desenvolvida, nomeadamente a adopção de um sistema codificado manulmente com conhecimento de HTML; fruto da fusão dos conceitos fornecidos por SARAWAGI (2008) e STUART (2006). Em relação ao segundo capítulo, pode-se evidenciar que o sistema funciona de forma desejável, extraindo notícias recentes de diferentes fontes e a interface do usuário para
  • 71. 58 dispositivos móveis assemelha-se a uma aplicação nativa providenciando uma óptima experiência de visualização em smartphones e tablets. Para terminar, durante a prova do sistema, quando a conexão a internet da parte do cliente e do servidor fossem boas, o tempo de carregamento de conteúdos poderia ser menor que 1 segundo devido a funcionalidade prefetch descrita no capítulo 2; isto é 6 vezes mais rápido que o tempo recomendavel de 6 segundos. Contudo, o período de carregamento pode exceder em muito os 6 segundos por causa da dependência de recursos de rede. 3.2. TRABALHOS FUTUROS A continuidade do sistema pode ser através de diversas melhorias principalmente em termos de funcionalidades que actualmente podem fazer falta ao usuário. A maior mudança será a sua implementação utilizando uma tecnologia diferente que é o framework denominado scrapy na linguagem de programação python. A seguir apresentam-se todas as melhorias necessárias:  Acréscimo de mais fontes de notícias de modo a oferecer aos utilizadores uma imensa variedade de conteúdo.  A possibilidade do usuário ter acesso a notícias que não sejam necessariamente recentes, por exemplo notícias de dois dias atrás, uma semana atrás, duas semanas atrás, etc.  Implementação do sistema na linguagem de programação python com o uso do framework para web scraping denominado scrapy, este software possui mais funcionalidades do que livraria Simple HTM DOM, é mais robusto (aliás, um dos melhores softwares de web scraping a serem encontrados na internet) e é ideal para um scraping mais avançado e com resultados mais satisfatórios.
  • 72. 59  Acréscimo de mecanismos de colecta de informação sobre as preferências dos usuários em aspectos como: a fonte de notícia preferencial, que funcionalidades os usuário acham que devem constar e que fontes de notícias podem ser removidas ou adicionadas.  Guardar as notícias do portal do governo de Moçambique numa base de dados, implementar uma memória caché temporária no servidor ou mesmo remover a fonte (tendo em conta a sua credibilidade e importância esta última hipótese por enquanto deve ser descartada) devido a um problema constante com este portal que muitas vezes tem sido lento ou mesmo indisponível o que tem como consequência a impossibilidade de acesso a notícias vindo dele. 3.3. CONCLUSÃO A tendência histórica da imprensa que está dividida em seis fases revela a forma como a notícia evoluiu a partir de momentos primordiais (antes da nossa era) até a era actual (digital) onde o meio de acesso que mais cresce são os websites, o tipo de media no qual o sistema proposto para esta monografia se enquadra. A caracterização epistemológica permite perceber como a ferramentas de EI funcionam, qual o seu fim e fornece uma imagem muito clara das implicações de concepção de ferramentas com o intuito de extrair informação como o caso do web scraper de notícia para dispositivos móveis. A apresentação rigorosa do ponto de vista científico e baseado numa literatura totalmente actualizada aponta a um processo de criação da solução proposta tendo em conta a Engenharia de Software e a implementação do sistema utilizando tecnologias abertas disponíveis na internet incluindo o manual do usuário ilustrado como meio de lidar com o
  • 73. 60 problema exposto que é uma abordagem da questão de limitações no acesso a notícias digitais explorando o poder dos dispositivos móveis através do uso do seu potencial pelo que neste caso navegadores cada vez mais sofisticados com suporte a tecnologias web recentes e possibilidade de acesso a internet por meio de uma conexão com velocidade satisfatória permitiu a obtenção de resultados desejados e o cumprimento do objectivo e a hipotese a defeder nesta monografia.
  • 74. 61 BIBLIOGRAFIA BOONE, Louis & KURTZ, David. Contemporary Marketing: Update 2015. Natorp Boulevard Mason: Cengage Learning, 2014. CHANG, George et al. Mining the World Wide Web: An Information Search Approach. Norwell: Spring, 2001. CHICAVA, Sérgio & POHLMANN, Jonas. Uma Breve Análise da Imprensa Moçambicana. Desafios para Moçambique. In: de BRITO, L. at al. (eds.). Desafios para Moçambique 2010. Maputo: IESE, 2010. DENECKE, Kerstin. Event-Driven Surveillance: Possibilities and Challenges. New York: Springer, 2012, p.37. ENDRES, Kathleen, L. Evolution of Journalism and Mass Communication. In: LUTHRA, Rashmi (eds). Journalism and Mass Communication. Paris: Eolss Publishers, 2009, vol. 1. FANG, Irvang. A History of Mass Communication. Washington: Focal Press, 1997. FITZGERALD, Michael. Introduction to Regular Expressios. Sebastopol: Oreilly, 2012. GHOSH, Ashish, DE, Rajat K. & SANKAR, K, Pal. Pattern Recognition and Machine Intelligence: Second International Conference, PReMI 2007, Kolkata, India, December 18-22, 2009, Proceedings. Kolkota: Springer, 2009. GREENBERG, Jane. Metadata for Semantic and Social Applications: Proceedings of the International Conference on Dublin Core and Metadata Applications: Berlin, 22-26 September 2008: DC 2008: Berlin, Germany. Berlin: Universitätsverlag Göttingen, 2008.
  • 75. 62 HOHLFELDT, António & GRABAUSKA, Fernanda (2010). Pioneiros da Imprensa em Moçambique: João Albasini e Seu Irmão. Disponível em <http://bjr.sbpjor.org.br/bjr/article/ view/255/254> Acesso: 10/09/2014. HURWITZ, Judith. Big Data for Dummies. Hoboken: John Wiley & Sons, 2013, p.9. KAPETANIOS, Epaminondas e tal. Natural Language and Information Systems: 13th International Conference on Applications of Natural Language to Information Systems, NLDB 2008 London, UK, June 24-27, 2008, Proceedings. Heidelberg: Springer, 2008, p.207. KOZIEROK, Sam. The HTTP Manual. Hoboken: John Wiley & Sons, 2005. KUMAR, Ela. Natural Language Processing. New Delhi: I. K. International Pvt Ltd, 2011. LEVITHAN, Steven & GOYVAERTS, Jan. Regular Expressions Cookbook. Sebastopol: Oreilly, 2009. MAO, Wenji & WANG, Fei-Yue. Advances in Intelligence and Security Informatics. Oxford: Academic Press, 2012. MINER, Gary, et al. Practical Text Mining and Statistical Analysis for Non-structured Text Data Applications. Waltham: Academic Press, 2012. MITCHELL, Ryan. Instant Web Scraping with Java. Birmingham: Packt Publishing Ltd, 2013. MOENS, Marie-Francine. Information Extraction: Algorithms and Prospects in a Retrieval Context. Dordrecht: Springer, 2006. MUGELLINI, Elena et tal. Advances in Intelligent Web Mastering – 3. Chennai: Springer, 2011, p. 155.