Webscraper de noticia para dispositivos móveis

596 visualizações

Publicada em

Monografia para licenciatura em Engenharia Informática com o titulo: Webscraper de Notícia para dispositivos móveis

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
596
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Webscraper de noticia para dispositivos móveis

  1. 1. WEB SCRAPER DE NOTÍCIA PARA DISPOSITIVOS MÓVEIS Jordão Ortega Jemusse Manguena
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 13. VI
  14. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×