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

Comment extraire des pages Web pour leurs métadonnées

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

French (Français) translation by Soule Nassurdine (you can also view the original English article)

Final product image
What You'll Be Creating

Introduction

Récemment, j'ai commencé à construire un site communautaire au-dessus de la plate-forme Yii dont j'ai parlé dans La Programmation avec Yii2 : Construire une communauté avec des commentaires, du partage et des votes (Envato Tuts +). Je voulais faciliter l'ajout de liens liés au contenu du site. Bien qu'il soit facile pour les utilisateurs de coller des URL dans des formulaires, fournir également des informations sur les titres et les sources devient long.

Dans le tutoriel d'aujourd'hui, je vais vous montrer comment tirer parti de PHP pour extraire les métadonnées communes des pages Web afin de faciliter la participation de vos utilisateurs et de créer des services plus intéressants.

Rappelez-vous, je participe aux commentaires ci-dessous, alors dites-moi ce que vous en pensez ! Vous pouvez également me joindre sur Twitter @lookahead_io.

Commencer

Tout d'abord, j'ai construit un formulaire pour les personnes à ajouter des liens en collant l'URL. J'ai également créé un bouton de Lookup pour utiliser AJAX pour demander la page Web dont les informations métadonnées doivent être extraites.

Web Scraping - Create Link form with Lookup button

En appuyant sur Lookup, vous appelez la fonction Link::grab() via ajax:

Extraction de la page

Le code Link::grab() fait appel à fetch_og(). Cela imite un robot pour capturer la page et obtenir les métadonnées avec DOMXPath :

Pour mon scénario, j'ai remplacé les balises og: ci-dessus, mais le code ci-dessous recherche différents types de balises :

Vous pouvez également saisir d'autres balises telles que les mots-clés, la description, etc. Le jQuery ajoute ensuite le résultat au formulaire que l'utilisateur doit soumettre :

Web Scraping - Create Link with Resulting Title Filled In

Aller plus loin

J'ai aussi un tableau de sources que je développerai plus tard. Mais fondamentalement, chaque fois qu'une nouvelle URL est ajoutée, nous l'analysons pour le domaine de base du site et le plaçons dans une table Source :

Pour l'instant, je mets à jour manuellement les noms des sources afin qu'elles apparaissent clairement à l'utilisateur, par ex. ABC News, BoingBoing, et Vice :

Web Scraping - Item page with completed links and clean sources

J'espère que, dans un épisode à venir, je vais examiner comment utiliser gratuitement les APIs disponibles pour rechercher le nom du site. C'est étrange pour moi qu'il n'y a pas de méta tag commun pour ça ; Si seulement internet était parfait.

Les Sites Payants

Certains sites comme The New York Times ne vous permettent pas d'extraire les métadonnées en raison de leurs "péage". Mais ils ont une API. Ce n'est pas facile à apprendre en raison de la documentation déroutante, mais leurs développeurs sont prompts à aider sur GitHub. J'espère également écrire sur l'utilisation de la recherche de métadonnées pour les titres du New York Times dans un épisode futur.

Pour conclure

J'espère que vous avez trouvé ce guide de l'extraction utile et que vous allez vous mettre à utiliser quelque part dans vos projets. Si vous souhaitez le voir en action, vous pouvez essayer l'extraction web sur mon site, Active Together.

S'il vous plaît partager vos idées et réactions dans les commentaires. Vous pouvez également toujours me contacter directement sur Twitter @lookahead_io. Et soyez sûr de voir ma page d'instructeur et mes autres séries, Construire votre Startup Avec PHP et Programmation avec Yii2.

Liens Connexes

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