Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. PHP
Code

Como Extrair Metadados de Páginas Web

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called How to Scrape Web Pages for Metadata.
Using the New York Times API to Scrape Metadata

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

Final product image
What You'll Be Creating

O Que Criaremos

Recentemente, começamos a criar uma comunidade na plataforma Yii de Programando com Yii2: Criando Comunidade com Comentários, Comartilhamento e Votação (Entato Tuts+). Queríamos facilitar o compartilhamento de links relacionados ao conteúdo, no site. Embora seja fácil para pessoas colarem links em formulários, é complicado prover título e fonte da informação.

No tutorial de hoje, mostraremos como usar PHP para extrair metadados comuns de páginas web e facilitar a participação dos usuários, além de criar serviços mais interessantes.

Lembrem-se, sempre participamos dos tópicos nos comentários abaixo, então digam o que acham! Ou entre em contato via Twitter, @lookahead_io.

Começando

Primeiro, construímos um formulário para adicionar links. Também criamos um botão Lookup que usa Ajax para requisitar a extração dos metadados da página.

Web Scraping - Create Link form with Lookup button

Apertando Lookup chama Link::grab() via ajax:

Extraindo a Página

Link::grab() invoca fetch_og() que imita um rastreador para capturar a página e obter os metadados via DOMXPath:

Em nosso caso, substituímos as tags og: acima, mas o código abaixo busca vários outros tipos de tags:

Também podemos pegar outras tags como palavras-chave, descrição, etc. jQuery, então, adiciona o resultado ao formulário para o usuário enviar:

Web Scraping - Create Link with Resulting Title Filled In

Indo Além

Temos uma tabela sources que falaremos mais depois. Mas, basicamente, sempre que uma nova URL é adicionada, a analisamos e colocamos seu domínio numa tabela Source:

Por hora, atualizamos os nomes das fontes para parecem mais limpos para o usuário, como ABC News, BoingBoing e Vice:

Web Scraping - Item page with completed links and clean sources

Em um próximo episódio, esperamos usar APIs disponíveis gratuitamente para obter o nome de um site. É estranho não ter uma metatag para isso. Ah se a Internet fosse perfeita...

Sites Pagos

Alguns sites, como o The New York Times, não nos deixam extrair os metadados por cobrarem a leitura. Mas eles tem uma API. Não é fácil aprender pela documentação confusa, mas os desenvolvedores ajudam rapidamente no GitHub. Também queremos escrever sobre a busca de metadados para oter títulos do New Yotk Times em episódios futuros.

Finalizando

Esperamos que esse guia de extração tenha sido útil e que possamos usar em algum projeto. Se quisermos vê-lo em ação, podemos testá-lo no site Active Together.

Deixe suas ideias e feedback nos comentários. Também é possível contatar via @lookahead_io no Twitter. E visite a página de instrutor onde há outras séries, Construindo Sua Startup com PHP e Programando Com Yii2.

Links Relacionados

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.