Comment ExtraUtilisation des métadonnées du site Web ct Geekflare API de méta-grattage

En général, le web scraping est extraextraire les données d'un site Web à partir du code HTML produit lors du chargement d'une page Web.
Le métascraping est extraextraire 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 son contenu. Par exemple, les métadonnées peuvent inclure le nom de l'auteur, le titre et le nom de la page Web. description.
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 des pages Web pour leurs métadonnées, notamment la suppression de manuels.ally, en utilisant une bibliothèque ou en utilisant une API telle que Geekflare API de métascraping.
Plusieurs façons de tuer un chat
Pour abandonner Manually, on peut ouvrir une page Web en utilisant Chrome DevTools et le extract les métadonnées de l’onglet Éléments. Cependant, ce manuel est répétitif et fastidieux lorsqu'on a affaire à plusieurs pages. Nous pouvons automatiserate la tâche en utilisant plusieurs approches :
La première approche consiste à écrire le code à partir de zéro. Dans cette approche, vous effectuez une requête HTTP au site Web dont vous souhaitez récupérer les métadonnées. extract. Ensuite, vous pouvez analyser la réponse HTML extraextraire 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.
La deuxième approche est d'utiliser une bibliothèque dans laquelleatequel langage de programmation vous préférez. Cela vous permet de abstract sur les détails de la mise en œuvre et garde les choses simples. Cependant, si le langage de programmation de votre choix ne dispose pas d'une bibliothèque appropriée ou si le moteur d'exécution que vous utilisez ne prend pas en charge la bibliothèque, vous ne pouvez pas l'utiliser.
La third approche est d'utiliser une API comme le Geekflare API de métascrapage. Cette approche est idéale car elle vous offre une interface uniforme quel que soit votre langage de programmation. C'est toisable dans n'importe quelle langue tant qu'il prend en charge les requêtes HTTP.
Cet article démontreraate comment utiliser le Geekflare API de métascraping avec cURL, PHP et JavaScript (NodeJS).
Pourquoi devriez-vous utiliser le Geekflare API de métascraping ?
En raison des inconvénients des autres approches, les avantages de l'utilisation de la Geekflare Les API 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.
Commencer à utiliser le Geekflare API
Pour utiliser la Geekflare API, vous aurez besoin d’une clé API. Pour en obtenir un, rendez-vous sur Siterelique et create un compte gratuit. Après avoir créé votre compte, connectez-vous à tableau de bord. Depuis le tableau de bord, vous devriez pouvoir voir votre clé API.

Geekflare Présentation de l'API de métascraping
Le point de terminaison de l'API est located à 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
, device
et 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 précise 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 sous le Geekflare forfaits payants.
É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.
Le Geekflare API de métascraping dans 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 comme POST et le point de terminaison comme Geekflare Point de terminaison de méta-grattage de l'API.
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.
Le Geekflare API de métascraping avec JavaScript
Pour ce projet, nous créeronsate 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 Node pour gérer 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'abordate un dossier de projet vide et ouvrez-le dans un terminal.
mkdir metascraping-js && cd metascraping-js
Après cela, nous pouvons créerate le fichier dans lequel nous allons écrire le script :
touch index.js
Ensuite, nous pouvons instantanémentate 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 qui est similaire au browseuh 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
fonctionner quand nous arrivonsally appeler.
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.
finally, nous appelons 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 resolves, nous allons console.log()
l'objet renvoyé.
Donc ultimeateEn fait, 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'
}
}
Le Geekflare API avec PHP
Pour utiliser la Geekflare API Metascraping, assurez-vous d'abord que PHP et Composer sont installés sur votre machine locale.
Pour commencer, create 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 le Geekflare API.
composer require guzzlehttp/guzzle
Une fois Guzzle installé, nous pouvons créerate 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
Dans le script, nous insérons boiler-platet PHP
<?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
et le ?>
nous avons écrit avant.
require_once('vendor/autoload.php');
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
Ensuite, nous pouvons créerate 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 du Geekflare Tableau de bord des API.
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éerate une demande, nous instantiate 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, nous pouvons extract le corps de la requête et imprimez-le 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"
}
}
Mot de la fin
Ce guide a passé en revue différentes manières de consommer le Geekflare API de métascraping.
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, accessible uniquement avec le Geekflare Plan premium API. Quoi qu'il en soit, le Geekflare L'API reste suffisamment puissante pour de nombreux usages.
Jetez un coup d'œil au documentation officielle du Geekflare API pour plus d'information.