In Web Scraping Dernière mise à jourated:
Partager sur:
Logiciel Jira est l'outil de gestion de projet n°1 utilisé par les équipes agiles pour planifier, suivre, publier et prendre en charge d'excellents logiciels.

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, deviceet 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.

Partager sur:
  • Anesu Kafesu
    Auteur
    Je suis un ingénieur logiciel spécialisé dans le développement Web, le développement d'applications mobiles et l'intelligence artificielle. j'occasionneally écrire sur les mêmes sujets.

Merci à nos commanditaires

Plus de lectures intéressantes sur le Web Scraping

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • 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