Sådan udtrækkes webstedets metadata ved hjælp af toadmin.dk Meta Scraping API

Generelt er webskrabning at udtrække data fra et websted fra den HTML, der produceres, når en webside indlæses.

Metascraping er at udtrække websidens metadata fra metatags på en webside.

Metadataene på en webside er information om siden, men ikke sidens indhold. Metadata kan f.eks. omfatte forfatterens navn, titel og websidens beskrivelse.

Det hjælper brugere og søgemaskiner med at forstå, hvad siden handler om. Skrabning af metadata gør det muligt for en bruger hurtigt at indsamle oplysninger om websider på kortere tid.

Flere tilgange kan bruges til at skrabe websider for deres metadata, herunder skrabe manuelt, ved hjælp af et bibliotek eller ved at bruge en API såsom toadmin.dk Metascraping API.

Mange måder at dræbe en kat på

For at skrotte manuelt kan man åbne en webside ved hjælp af Chrome DevTools og udtrække metadataene fra fanen Elementer. Denne manual er dog gentagne og kedelige, når du har at gøre med flere sider. Vi kan automatisere opgaven ved hjælp af flere tilgange:

Den første tilgang er at skrive koden fra bunden. I denne tilgang laver du en HTTP-anmodning til den hjemmeside, hvis metadata du vil udtrække. Bagefter kan du analysere HTML-svaret, der ekstraherer data fra metatags ved hjælp af regulære udtryk eller mønstermatchning. Men denne tilgang genopfinder hjulet, da du vil bruge tid på at omskrive eksisterende kode.

Den anden tilgang er at bruge et bibliotek i det programmeringssprog, du foretrækker. Dette giver dig mulighed for at abstrahere over implementeringsdetaljerne og holder tingene enkle. Men hvis det programmeringssprog, du vælger, ikke har et passende bibliotek, eller den særlige kørselstid, du bruger, ikke understøtter biblioteket, kan du ikke bruge det.

Den tredje tilgang er at bruge en API som toadmin.dk Metascraping API. Denne tilgang er ideel, fordi den giver dig en ensartet grænseflade uanset dit programmeringssprog. Det kan bruges på ethvert sprog, så længe det understøtter HTTP-anmodninger.

Denne artikel vil demonstrere, hvordan man bruger toadmin.dk Metascraping API med cURL, PHP og JavaScript(NodeJS).

På grund af ulemperne ved andre tilgange er fordelene ved at bruge toadmin.dk API:

  • Det er sprog- og runtime-miljøagnostisk.
  • Du undgår at genopfinde hjulet og bruger mindre tid på at skrive kode.
  • Du kan skrabe flere websteder effektivt (i løbet af få sekunder).
  • Den er utrolig nem at bruge.
  • Du kan bruge det gratis.

Kom godt i gang Brug af toadmin.dk API

For at bruge toadmin.dk API’en skal du bruge en API-nøgle. For at få en skal du gå til toadmin.dk-webstedet og oprette en gratis konto. Når du har oprettet din konto, skal du logge ind på dashboardet. Fra dashboardet burde du kunne se din API-nøgle.

  Hvad er "opskalering" på et tv, og hvordan fungerer det?

API-endepunktet er placeret på https://api.toadmin.dk.com/metascraping. Når du laver en anmodning, skal du angive din API-nøgle som en anmodningsheader med navnet x-api-key, og værdien er din API-nøgle.

Du skal også indtaste yderligere parametre i anmodningsteksten. Disse er url, enhed og proxyCountry.

  • URL angiver URL’en på den webside, hvis metadata du vil skrabe.
  • Enhed angiver den enhed, der bruges til at besøge webstedet, når der skrabes metadata. Dine muligheder for enheder er mobil eller desktop.
  • Fuldmagtsland angiver det land, hvorfra anmodningen skal indgives, før dataene skrabes. Proxylandet er dog en premium-funktion og kan kun bruges under de betalte toadmin.dk-planer.

Da parametre vil blive videregivet som en del af kroppen, skal anmodningen være en POST-anmodning, da GET-anmodninger ikke kan indeholde metadata.

I den første demonstration vil vi bruge cURL-værktøjet fra kommandolinjen til at anmode om Metascraping API. For at bruge cURL skal du først installere det.

Jeg skal bruge en Bash-terminal. Dette bør være standardterminalen på macOS og Linux. For Windows skal du installere Git Bash.

Efter cURL er installeret, kan vi bruge cURL-kommandoen til at lave anmodningen. Vi vil videregive muligheder til kommandoen for at specificere anmodningsparametrene: anmodningsmetoden, slutpunktet, anmodningsteksten og anmodningsoverskrifterne.

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

NB: Omvendt skråstreg efter de første tre linjer giver dig mulighed for at opdele kommandoinputtet i flere linjer.

Denne kommando specificerede HTTP-metoden som POST og slutpunktet som toadmin.dk API-meta-scraping-slutpunktet.

Vi sendte også anmodningsteksten som et JSON-objekt med en URL-egenskab angivet som https://tesla.com. Til sidst tilføjede vi de overskrifter, der angiver kropsindholdstypen som JSON og leverede API-nøglen ved hjælp af x-api-key-headeren.

Når vi kører denne kommando, får vi følgende output:

{"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"}}

Det er det rigtige output.

Til dette projekt vil vi oprette et NodeJS-script til at hente data fra API’en. Det betyder, at du skal have NodeJS installeret. Du skal også bruge NPM eller en hvilken som helst anden pakkemanager til Node til at administrere projektets afhængigheder. Jeg kommer også til at bruge Bash-terminalen til at køre kommandoer.

For at bruge API’et i JavaScript opretter vi først en tom projektmappe og åbner den i en terminal.

mkdir metascraping-js && cd metascraping-js

Herefter kan vi oprette filen, hvor vi skal skrive scriptet:

touch index.js

Så kan vi instansiere projektet som et Node-projekt:

npm init -y

For at bruge ESModule-syntaks i vores fil, skal du tilføje linjen “type” : “modul” til roden af ​​filen package.json, så den ser sådan ud:

{
  "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",
}

Dernæst vil vi installere node-fetch-pakken. Denne pakke giver en hentefunktion i NodeJS, der ligner browserens hentefunktion. Dette gør det nemmere at lave HTTP-anmodninger i NodeJS end at bruge det indbyggede http-modul til at lave anmodninger.

npm install node-fetch

Når pakken er korrekt installeret, kan vi begynde at redigere scriptet. Åbn filen index.js ved hjælp af en teksteditor efter eget valg. I mit tilfælde vil jeg bruge den terminalbaserede nano-teksteditor.

nano index.js

Ved at redigere filen index.js starter vi med at importere hentefunktionen, som er standardeksporten af ​​node-hentningsmodulet.

import fetch from 'node-fetch'

Derefter vil vi definere hovedteksten i vores anmodning. Dette vil være en JSON-streng med en url-egenskab. URL-egenskabens værdi er den webside, hvis metadata vi ønsker at få.

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

Dernæst kan vi definere de anmodningsmuligheder, vi vil videregive til hentefunktionen, når vi til sidst kalder den.

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

Vi har defineret vores anmodningsmetode som værende en POST-anmodning. Vi definerede også to overskrifter. Den ene angiver, at kroppen indeholder JSON-data, og den anden giver API-nøglen.

  Ryd op i Google Musik fjerner alle forslagskort fra Google Musik [Firefox]

Du kan erstatte med din faktiske API-nøgle. I praksis bør API-nøglen ikke være hårdkodet i filen, men skal indlæses ved hjælp af miljøvariabler. Til sidst specificerede vi kropsegenskaben som værdien af ​​kropskonstanten, vi definerede tidligere.

Til sidst kalder vi for at hente

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

Her har vi kaldt hentning-funktionen, hvor vi sender API-endepunktet og de muligheder, vi definerede tidligere. Da fetch returnerer et løfte, vedhæftede vi et tilbagekald, der analyserer JSON-svarene ved hjælp af derefter.

Tilbagekaldet returnerer endnu et løfte, og når det løser sig, går vi til console.log() det returnerede objekt.

Så i sidste ende skulle vores fil se sådan ud.

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.toadmin.dk.com/metascraping', options)
    .then(response => response.json())
    .then(json => console.log(json))

For at køre scriptet skal du gemme redigeringerne og lukke nano eller den teksteditor, du bruger, og derefter indtaste følgende kommando:

node .

Du bør få følgende metadata:

{
  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'
  }
}

Brug af toadmin.dk API med PHP

For at bruge toadmin.dk Metascraping API skal du først sikre dig, at du har PHP og Composer installeret på din lokale maskine.

  Google Fotos mister sin gratis lagerplads: Hvad du behøver at vide

For at begynde skal du oprette og åbne projektmappen.

mkdir metascraping-php && cd metascraping-php

Installer derefter GuzzleHTTP. Guzzle er en af ​​de mange PHP-klienter, du kan bruge med toadmin.dk API.

composer require guzzlehttp/guzzle

Når Guzzle er installeret, kan vi oprette et script med

touch script.php

Så kan vi begynde at skrive koden. Brug en teksteditor efter eget valg, åbn filen script.php. I mit tilfælde vil jeg bruge nano, som er en terminalbaseret teksteditor.

nano script.php

Inde i scriptet indsætter vi kedelplade PHP

<?php
    // All code goes here
?>

For at indlæse udvidelserne skal du importere Request- og Client-klasserne fra Guzzle. Denne kode skal skrives mellem de vi skrev før.

require_once('vendor/autoload.php');

use GuzzleHttpClient;
use GuzzleHttpPsr7Request;

Dernæst kan vi oprette en klient ved at instansiere GuzzleHttpClient-klassen

$client = new GuzzleHttpClient();

Bagefter kan vi definere overskrifter for anmodningen. Til denne særlige anmodning vil vi give to overskrifter, en der angiver, at indholdstypen for kroppen er JSON, og den anden indeholder vores API-nøgle.

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

Erstat med din faktiske API-nøgle fra toadmin.dk API-dashboardet.

Så kan vi definere kroppen. I vores tilfælde vil kroppen være en JSON-streng med egenskabens url sat til “https://twitter.com”

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

For at oprette en anmodning instansierer vi den anmodningsklasse, vi importerede tidligere, og sender anmodningsmetoden, slutpunktet, overskrifterne og anmodningsteksten ind.

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

Dernæst bruger vi klienten til at sende anmodningen.

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

Derefter kan vi udtrække brødteksten af ​​anmodningen og udskrive den til konsollen

echo $response->getBody();

Hvis du har kopieret koden korrekt, skulle filen script.php se sådan ud

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

	use GuzzleHttpClient;
	use GuzzleHttpPsr7Request;

	$client = new GuzzleHttpClient();

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

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

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

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

	echo $response->getBody();
?>

Gem scriptet, luk det og kør det vha

php script.php

Du bør få følgende output:

{
    "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"
     }
}

Afsluttende ord

Denne guide gennemgik forskellige måder at bruge toadmin.dk Metascraping API på.

Metascraping API’en giver dig mulighed for også at angive flere parametre end blot URL’en. En sådan parameter er proxy-parameteren, som kun kan tilgås med toadmin.dk API premium-planen. Uanset hvad forbliver toadmin.dk API’en kraftig nok til mange anvendelser.

Tjek den officielle dokumentation af toadmin.dk API for mere information.