Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 28 août 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

En général, le web scraping consiste à extraire des données d'un site Web à partir du code HTML produit lors du chargement d'une page Web.

Metascraping extrait les métadonnées de la page Web à partir des balises méta d'une page Web.

Les métadonnées d'une page Web sont des informations sur la page mais pas sur le contenu de la page. Par exemple, les métadonnées peuvent inclure le nom de l'auteur, le titre et la description de la page Web.

Il aide les utilisateurs et moteurs de recherche comprendre de quoi parle la page. Le grattage des métadonnées permet à un utilisateur de collecter rapidement des informations sur les pages Web en moins de temps.

Plusieurs approches peuvent être utilisées pour supprimer les pages Web de leurs métadonnées, notamment le grattage manuel, l'utilisation d'une bibliothèque ou l'utilisation d'une API telle que l'API Geekflare Metascraping.

Plusieurs façons de tuer un chat

Pour supprimer manuellement, on peut ouvrir une page Web en utilisant Chrome DevTools et extrayez les métadonnées de l'onglet Éléments. Cependant, ce manuel, répétitif et fastidieux lorsqu'on a affaire à plusieurs pages. Nous pouvons automatiser la tâche en utilisant plusieurs approches :

Les première approche est d'écrire le code à partir de zéro. Dans cette approche, vous faites une requête HTTP au site Web dont vous souhaitez extraire les métadonnées. Ensuite, vous pouvez analyser la réponse HTML en extrayant les données des balises méta à l'aide d'expressions régulières ou de correspondances de modèles. Cependant, cette approche réinvente la roue car vous passerez du temps à réécrire le code existant.

Les deuxième approche est d'utiliser une bibliothèque dans le langage de programmation que vous préférez. Cela vous permet de faire abstraction des détails de mise en œuvre et de simplifier les choses. Cependant, si le langage de programmation de votre choix ne dispose pas d'une bibliothèque appropriée ou si le runtime particulier que vous utilisez ne prend pas en charge la bibliothèque, vous ne pouvez pas l'utiliser.

Les troisième approche est d'utiliser une API comme le API de métascraping Geekflare. Cette approche est idéale car elle vous donne une interface uniforme quel que soit votre langage de programmation. Il est utilisable dans n'importe quelle langue tant qu'il prend en charge les requêtes HTTP.

Cet article montrera comment utiliser l'API Geekflare Metascraping avec cURL, PHP et JavaScript (NodeJS).

Why Should You Use the Geekflare Metascraping API?

En raison des inconvénients des autres approches, les avantages de l'utilisation de l'API Geekflare sont :

  • Il est indépendant du langage et de l'environnement d'exécution.
  • Vous évitez de réinventer la roue et passez moins de temps à écrire du code.
  • Vous pouvez gratter efficacement plusieurs sites Web (en quelques secondes).
  • Il est incroyablement facile à utiliser.
  • Vous pouvez l'utiliser gratuitement.

Getting Started Using the Geekflare API

Pour utiliser l'API Geekflare, vous aurez besoin d'une clé API. Pour en obtenir un, rendez-vous sur Siterelique et créez un compte gratuit. Après avoir créé votre compte, connectez-vous au tableau de bord. Depuis le tableau de bord, vous devriez pouvoir voir votre clé API.

Geekflare-Tableau de bord-1

Geekflare Metascraping API Overview

Le point de terminaison de l'API est situé à https://api.geekflare.com/metascraping. Lorsque vous faites une demande, vous devez fournir votre clé API comme en-tête de demande avec le nom x-api-key et la valeur étant votre clé API.

Vous devrez également transmettre des paramètres supplémentaires dans le corps de la requête. Voici les url, deviceet au proxyCountry.

  • URL spécifie l'URL de la page Web dont vous souhaitez récupérer les métadonnées.
  • Appareil spécifie l'appareil utilisé pour visiter le site lors du grattage des métadonnées. Vos options pour les appareils sont mobiles ou de bureau.
  • Pays proxy spécifie le pays à partir duquel la demande doit être faite avant que les données ne soient supprimées. Le pays proxy, cependant, est une fonctionnalité premium et ne peut être utilisé que dans le cadre des plans payants Geekflare.

Étant donné que les paramètres seront transmis dans le cadre du corps, la demande doit être un POST demande depuis GET les requêtes ne peuvent pas contenir de métadonnées.

Using the Geekflare Metascraping API in cURL

Dans la première démonstration, nous utiliserons l'utilitaire cURL depuis la ligne de commande pour demander l'API Metascraping. Pour utiliser cURL, vous devrez installez-le d'abord.

Je vais utiliser un terminal Bash. Cela devrait être le terminal par défaut sur macOS et Linux. Pour Windows, vous devrez installer Git Bash.

Une fois cURL installé, nous pouvons utiliser la commande cURL pour effectuer la demande. Nous transmettrons des options à la commande pour spécifier les paramètres de la requête : la méthode de la requête, le point de terminaison, le corps de la requête et les en-têtes de la requête.

curl -X POST \
https://api.geekflare.com/metascraping \ 
-d '{ "url": "https://tesla.com" }' \
-H 'Content-Type: application/json' \
-H 'x-api-key: <API_KEY>'

NB : La barre oblique inverse après les trois premières lignes vous permet de diviser la saisie de la commande en plusieurs lignes.

Cette commande a spécifié la méthode HTTP en tant que POST et le point de terminaison en tant que point de terminaison de méta-grattage de l'API Geekflare.

Nous avons également envoyé le corps de la requête en tant qu'objet JSON avec une propriété URL spécifiée comme https://tesla.com. Enfin, nous avons ajouté les en-têtes qui spécifient le type de contenu du corps en tant que JSON et fourni la clé API à l'aide du x-api-key en-tête.

Lorsque nous exécutons cette commande, nous obtenons le résultat suivant :

{"timestamp":1669328564856,"apiStatus":"success","apiCode":200,"meta":{"url":"https://tesla.com","device":"desktop","test":{"id":"1fh2c30i05vmvxb99pdh6t6hze2x72jv"}},"data":{"author":null,"date":null,"description":"Tesla is accelerating the world’s transition to sustainable energy with electric cars, solar and integrated renewable energy solutions for homes and businesses.","image":"https://tesla-cdn.thron.com/delivery/public/image/tesla/6139697c-9d6a-4579-837e-a9fc5df4a773/bvlatuR/std/1200x628/Model-3-Homepage-Social-LHD","logo":"https://tesla.com/themes/custom/tesla_frontend/assets/favicons/favicon-196x196.png","publisher":"Tesla","title":"Electric Cars, Solar & Clean Energy | Tesla","url":"https://www.tesla.com/","lang":"en"}}

C'est la bonne sortie.

Using the Geekflare Metascraping API with JavaScript

Pour ce projet, nous allons créer un script NodeJS pour récupérer les données de l'API. Cela signifie que vous aurez besoin d'installer NodeJS. Vous aurez également besoin de NPM ou de tout autre gestionnaire de packages pour que Node gère les dépendances du projet. Je vais également utiliser le terminal Bash pour exécuter des commandes.

Pour utiliser l'API en JavaScript, nous créons d'abord un dossier de projet vide et l'ouvrons dans un terminal.

mkdir metascraping-js && cd metascraping-js

Après cela, nous pouvons créer le fichier dans lequel nous allons écrire le script :

touch index.js

Ensuite, nous pouvons instancier le projet en tant que projet Node :

npm init -y

Pour utiliser la syntaxe ESModule dans notre fichier, ajoutez la ligne "type" : "module” à la racine du fichier package.json de sorte qu'il ressemble à ceci :

{
  "name": "metascraping",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
}

Ensuite, nous allons installer le node-fetch forfait. Ce forfait offre une fetch fonction dans NodeJS similaire à celle du navigateur fetch fonction. Cela facilite la création de requêtes HTTP dans NodeJS plutôt que d'utiliser la fonction intégrée http module pour faire des requêtes.

npm install node-fetch

Lorsque le package est correctement installé, nous pouvons commencer à éditer le script. Ouvrez le index.js fichier à l'aide d'un éditeur de texte de votre choix. Dans mon cas, je vais utiliser le terminal nano éditeur de texte.

nano index.js

Modifier le index.js fichier, nous commençons par importer le fetch fonction, qui est l'exportation par défaut de la node-fetch module.

import fetch from 'node-fetch'

Ensuite, nous définirons le corps de notre requête. Cela va être une chaîne JSON avec un url propriété. le url La valeur de la propriété est la page Web dont nous voulons obtenir les métadonnées.

const body = JSON.stringify({ url: 'https://spacex.com' });

Ensuite, nous pouvons définir les options de requête que nous transmettrons au fetch fonction quand nous l'appelons finalement.

const options = {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'x-api-key': <YOUR API KEY here>
    },
    body: body
}

Nous avons défini notre méthode de requête comme étant une POST demande. Nous avons également défini deux en-têtes. L'un spécifie que le corps contient des données JSON et l'autre fournit la clé API.

Vous pouvez remplacer avec votre clé API réelle. En pratique, la clé API ne doit pas être codée en dur dans le fichier mais doit être chargée à l'aide de variables d'environnement. Enfin, nous avons spécifié la propriété body comme la valeur de la constante body que nous avons définie précédemment.

Enfin, nous faisons appel à fetch

fetch('https://api.geekflare.com/metascraping', options)
    .then(response => response.json())
    .then(json => console.log(json))

Ici, nous avons appelé la fonction de récupération, en transmettant le point de terminaison de l'API et les options que nous avons définies précédemment. Depuis fetch renvoie une promesse, nous avons attaché un rappel qui analyse les réponses JSON en utilisant then.

Le rappel renvoie une autre promesse, et quand il se résout, nous allons console.log() l'objet renvoyé.

Donc, finalement, notre fichier devrait ressembler à ceci.

import fetch from 'node-fetch'

const body = JSON.stringify({ url: 'https://spacex.com' });

const options = {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'x-api-key': <YOUR API KEY here>
    },
    body: body
}

fetch('https://api.geekflare.com/metascraping', options)
    .then(response => response.json())
    .then(json => console.log(json))

Pour exécuter le script, enregistrez les modifications et fermez nano ou l'éditeur de texte que vous utilisez, puis saisissez la commande suivante :

node .

Vous devriez obtenir les métadonnées suivantes :

{
  timestamp: 1669305079698,
  apiStatus: 'success',
  apiCode: 200,
  meta: {
    url: 'https://spacex.com',
    device: 'desktop',
    test: { id: '8m3srgqw06q2k8li5p6x70s8165d6e2f' }
  },
  data: {
    author: null,
    date: null,
    description: 'SpaceX designs, manufactures and launches advanced rockets and spacecraft.',
    image: 'https://www.spacex.com/static/images/share.jpg',
    logo: 'https://spacex.com/static/images/favicon.ico',
    publisher: 'SpaceX',
    title: 'SpaceX',
    url: 'http://www.spacex.com/',
    lang: 'en'
  }
}

Using the Geekflare API with PHP

Pour utiliser l'API Geekflare Metascraping, assurez-vous d'abord que PHP et Composer sont installés sur votre ordinateur local.

Pour commencer, créez et ouvrez le dossier du projet.

mkdir metascraping-php && cd metascraping-php

Ensuite, installez GuzzleHTTP. Guzzle est l'un des nombreux Clients PHP que vous pouvez utiliser avec l'API Geekflare.

composer require guzzlehttp/guzzle

Une fois Guzzle installé, nous pouvons créer un script avec

touch script.php

Ensuite, nous pouvons commencer à écrire le code. À l'aide d'un éditeur de texte de votre choix, ouvrez le script.php dossier. Dans mon cas, je vais utiliser nano qui est un éditeur de texte basé sur un terminal.

nano script.php

À l'intérieur du script, nous insérons PHP passe-partout

<?php
    // All code goes here
?>

Maintenant, pour charger les extensions, importez les classes Request et Client depuis Guzzle. Ce code doit être écrit entre le <?php , ?> nous avons écrit avant.

require_once('vendor/autoload.php');

use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;

Ensuite, nous pouvons créer un client en instanciant le GuzzleHttp\Client classe

$client = new GuzzleHttp\Client();

Ensuite, nous pouvons définir des en-têtes pour la requête. Pour cette requête particulière, nous fournirons deux en-têtes, l'un qui spécifie que le type de contenu du corps est JSON et l'autre contenant notre clé API.

$headers = [
    'x-api-key' => <YOUR API KEY HERE>,
    'Content-Type' => 'application/json'
];

remplacer <YOUR API KEY HERE> avec votre clé API réelle à partir du tableau de bord de l'API Geekflare.

Ensuite, nous pouvons définir le corps. Dans notre cas, le corps sera une chaîne JSON avec la propriété url ajuster à "https://twitter.com"

$body = json_encode([
    "url" => "https://twitter.com"
]);

Pour créer une requête, nous instancions la classe de requête que nous avons importée précédemment, en transmettant la méthode de requête, le point de terminaison, les en-têtes et le corps de la requête.

$request = new Request('POST', 'https://api.geekflare.com/metascraping', $headers, $body);

Ensuite, nous utilisons le client pour envoyer la requête.

$response = $client->sendAsync($request)->wait();

Après, on peut extraire le corps de la requête et l'imprimer sur la console

echo $response->getBody();

Si vous avez correctement copié le code, le script.php le fichier devrait ressembler à ceci

<?php
    require_once('vendor/autoload.php');

	use GuzzleHttp\Client;
	use GuzzleHttp\Psr7\Request;

	$client = new GuzzleHttp\Client();

	$headers = [
    	'x-api-key' => <YOUR API KEY>,
    	'Content-Type' => 'application/json'
	];

	$body = json_encode([
    	"url" => "https://twitter.com"
	]);

	$request = new Request('POST', 'https://api.geekflare.com/metascraping', $headers, $body);

	$response = $client->sendAsync($request)->wait();

	echo $response->getBody();
?>

Enregistrez le script, fermez-le et exécutez-le en utilisant

php script.php

Vous devriez obtenir la sortie suivante:

{
    "timestamp":1669322100912,
    "apiStatus":"success",
    "apiCode":200,
    "meta": {
        "url":"https://twitter.com",
        "device":"desktop",
        "test":{ 
            "id":"wn1nj30r04bk0ijtpprwdqmtuirg9lze"
        }
     },
     "data":{ 
         "author":null,
         "date":null,
         "description":"The latest stories on Twitter - as told by Tweets.",
         "image":"https://abs.twimg.com/a/1602199131/img/moments/moments-card.jpg",
         "logo":"https://abs.twimg.com/responsive-web/client-web/icon-ios.b1fc7279.png",
         "publisher":"Twitter",
         "title":"Explore",
         "url":"https://twitter.com/explore",
         "lang":"en"
     }
}

Final Words

Ce guide a présenté différentes manières d'utiliser l'API Geekflare Metascraping.

L'API Metascraping vous permet également de fournir plus de paramètres que celui de l'URL. L'un de ces paramètres est le paramètre proxy, qui n'est accessible qu'avec le plan premium de l'API Geekflare. Quoi qu'il en soit, l'API Geekflare reste suffisamment puissante pour de nombreuses utilisations.

Jetez un coup d'œil au documentation officielle de l'API Geekflare pour plus d'information.

  • Anesu Kafesu
    Auteur
    Développeur web full stack et rédacteur technique. En train d'apprendre l'IA.
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder