Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Cómo Procesar Páginas Web para Obtener Metadatos

by
Read Time:3 minsLanguages:
This post is part of a series called How to Scrape Web Pages for Metadata.
Using the New York Times API to Scrape Metadata

Spanish (Español) translation by James Kolce (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Introducción

Recientemente comencé a construir un sitio web comunitario encima de la plataforma Yii sobre el cual escribí en Programming With Yii2: Building Community with Comments, Sharing and Voting (Envato Tuts+). Quería que fuera simple agregar enlaces relacionados al contenido del sitio. Aunque es fácil para las personas el pegar URLs en formularios, se vuelve una pérdida de tiempo proveer también el título y fuente de la información.

En el tutorial de hoy, voy a mostrarte cómo hacer uso de PHP para procesar metadatos comunes de una página web y hacer más fácil para tus usuario participar y así construir servicios más interesantes.

Recuerda que participo en el hilo de comentarios abajo, ¡así que dime lo que piensas! También puedes encontrarme en Twitter @lookahead_io.

Comenzando

Primero, construí un formulario para que las personas agreguen enlaces pegando la URL. También creé un botón Lookup que usa AJAX para solicitar el procesamiento de la página web para información de metadatos.

Web Scraping - Create Link form with Lookup buttonWeb Scraping - Create Link form with Lookup buttonWeb Scraping - Create Link form with Lookup button

Al presionar Lookup se llama a la función Link::grab() via ajax:

Procesando la Página

El código Link::grab() llama a fetch_og(). Esto imita a un rastreador para capturar la página y obtener los metadatos con DOMXPath:

Para mi escenario, he reemplazado las etiquetas og: arriba, pero el código abajo busca varios tipos de etiquetas.

También puedes tomar otras etiquetas como palabras clave, descripción, etc. Entonces jQuery agrega el resultado al formulario para que el usuario lo envíe.

Web Scraping - Create Link with Resulting Title Filled InWeb Scraping - Create Link with Resulting Title Filled InWeb Scraping - Create Link with Resulting Title Filled In

Yendo Más Allá

También tengo una tabla de fuentes las cuales voy a desarrollar más después. Pero básicamente, cada vez que una nueva URL es agregada, la analizamos para obtener el dominio base del sitio web y lo ponemos en una tabla Source:

Por ahora, estoy actualizando manualmente los nombres de las fuentes así se verán más limpios para el usuario, por ejemplo: ABC News, BoingBoing, y Vice:

Web Scraping - Item page with completed links and clean sourcesWeb Scraping - Item page with completed links and clean sourcesWeb Scraping - Item page with completed links and clean sources

Ojalá, en un siguiente episodio, revisaré cómo usar APIs disponibles gratuitamente para obtener el nombre de un sitio web. Es extraño para mi que no haya una metaetiqueta común para esto; si tan solo el Internet fuera perfecto.

Sitios de Subscripción

Algunos sitios como The New York Times no te dejan procesar los metadatos debido a sus sistemas de subscripción. Pero sí tienen una API. No es fácil para aprender porque tienen una confusa documentación, pero sus desarrolladores son rápidos para ayudar en Github. También espero escribir sobre el uso de la búsqueda de metadatos para los títulos de The New York Times en un episodio futuro.

Para Concluir

Espero que encuentres esta guia de procesamiento útil y hagas uso de ella en algún lugar de tus proyectos. Si te gustaría verla en acción, puedes probar algo de procesamiento web en mi sitio, Active Together.

Por favor comparte cualquier idea u opinión en los comentarios. Puedes también encontrarme en Twitter @lookahead_io directamente. Y asegurate de revisar mi página de instructor y mis otras series, Building Your Startup With PHP y Programming With Yii2.

Enlaces 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.