Kā iegūt vietnes metadatus, izmantojot pcdream.lt Meta Scraping API

Parasti tīmekļa skrāpēšana ir datu iegūšana no vietnes no HTML, kas tiek izveidots, kad tiek ielādēta tīmekļa lapa.

Metascraping ir tīmekļa lapas metadatu izvilkšana no tīmekļa lapas metatagiem.

Tīmekļa lapas metadati ir informācija par lapu, bet ne lapas saturs. Piemēram, metadati var ietvert autora vārdu, nosaukumu un tīmekļa lapas aprakstu.

Tas palīdz lietotājiem un meklētājprogrammām saprast, par ko ir lapa. Metadatu nokasīšana ļauj lietotājam īsākā laikā ātri savākt informāciju par tīmekļa lapām.

Tīmekļa lapu metadatu iznīcināšanai var izmantot vairākas pieejas, tostarp manuālu nokopšanu, izmantojot bibliotēku vai API, piemēram, pcdream.lt metascraping API.

Daudzi veidi, kā nogalināt kaķi

Lai noņemtu lūžņos manuāli, varat atvērt tīmekļa lapu, izmantojot Chrome DevTools, un izvilkt metadatus no cilnes Elementi. Tomēr šī rokasgrāmata atkārtojas un ir nogurdinoša, ja jums ir darīšana ar vairākām lapām. Mēs varam automatizēt uzdevumu, izmantojot vairākas pieejas:

Pirmā pieeja ir rakstīt kodu no nulles. Izmantojot šo pieeju, jūs veicat HTTP pieprasījumu vietnei, kuras metadatus vēlaties iegūt. Pēc tam varat parsēt atbildes HTML, iegūstot datus no metatagiem, izmantojot regulāras izteiksmes vai modeļu saskaņošanu. Tomēr šī pieeja no jauna izgudro riteni, jo jūs pavadīsit laiku, pārrakstot esošo kodu.

Otrā pieeja ir izmantot bibliotēku jebkurā programmēšanas valodā, kuru vēlaties. Tas ļauj abstrahēties par ieviešanas detaļām un padara lietas vienkāršu. Tomēr, ja jūsu izvēlētajai programmēšanas valodai nav piemērotas bibliotēkas vai konkrētais izpildlaiks, kuru izmantojat, neatbalsta bibliotēku, jūs to nevarat izmantot.

Trešā pieeja ir izmantot API, piemēram, pcdream.lt metascraping API. Šī pieeja ir ideāla, jo tā nodrošina vienotu saskarni neatkarīgi no jūsu programmēšanas valodas. To var izmantot jebkurā valodā, ja vien tā atbalsta HTTP pieprasījumu veikšanu.

Šajā rakstā tiks parādīts, kā izmantot pcdream.lt metascraping API ar cURL, PHP un JavaScript (NodeJS).

Citu pieeju trūkumu dēļ pcdream.lt API izmantošanas priekšrocības ir šādas:

  • Tas ir valodas un izpildlaika vides agnostiķis.
  • Jūs izvairāties no jauna izgudrot riteni un pavadāt mazāk laika, rakstot kodu.
  • Varat efektīvi nokasīt vairākas vietnes (dažu sekunžu laikā).
  • Tas ir neticami viegli lietojams.
  • Jūs varat to izmantot bez maksas.

Darba sākšana, izmantojot pcdream.lt API

Lai izmantotu pcdream.lt API, jums būs nepieciešama API atslēga. Lai to iegūtu, dodieties uz pcdream.lt vietni un izveidojiet bezmaksas kontu. Pēc konta izveides piesakieties informācijas panelī. Informācijas panelī jums vajadzētu būt iespējai redzēt savu API atslēgu.

API galapunkts atrodas vietnē https://api.pcdream.lt.com/metascraping. Veicot pieprasījumu, jums ir jānorāda API atslēga kā pieprasījuma galvene ar nosaukumu x-api-key un vērtība ir jūsu API atslēga.

  Kā mainīt slaida izmēru programmā Powerpoint

Pieprasījuma pamattekstā būs jāievada arī papildu parametri. Tie ir vietrādis URL, ierīce un starpniekservera valsts.

  • URL norāda tās tīmekļa lapas URL, kuras metadatus vēlaties notīrīt.
  • Ierīce norāda ierīci, kas tiek izmantota vietnes apmeklēšanai metadatu skrāpēšanas laikā. Ierīcēm varat izvēlēties mobilās ierīces vai galddatorus.
  • Pilnvarotā valsts norāda valsti, no kuras ir jāiesniedz pieprasījums pirms datu nokopšanas. Tomēr starpniekservera valsts ir augstākās kvalitātes funkcija, un to var izmantot tikai saskaņā ar pcdream.lt maksas plāniem.

Tā kā parametri tiks nodoti kā pamatteksta daļa, pieprasījumam ir jābūt POST pieprasījumam, jo ​​GET pieprasījumos nevar būt metadati.

Pirmajā demonstrācijā mēs izmantosim cURL utilītu no komandrindas, lai pieprasītu metascraping API. Lai izmantotu cURL, vispirms tas būs jāinstalē.

Es izmantošu Bash termināli. Tam vajadzētu būt MacOS un Linux noklusējuma terminālim. Operētājsistēmā Windows jums būs jāinstalē Git Bash.

Pēc cURL instalēšanas mēs varam izmantot komandu cURL, lai veiktu pieprasījumu. Mēs nosūtīsim komandai opcijas, lai norādītu pieprasījuma parametrus: pieprasījuma metodi, galapunktu, pieprasījuma pamattekstu un pieprasījuma galvenes.

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

NB: atpakaļvērstā slīpsvītra pēc pirmajām trīs rindiņām ļauj sadalīt komandas ievadi vairākās rindās.

Šī komanda noteica HTTP metodi kā POST un galapunktu kā pcdream.lt API meta-nokasīšanas galapunktu.

Mēs arī nosūtījām pieprasījuma pamattekstu kā JSON objektu ar URL rekvizītu, kas norādīts kā https://tesla.com. Visbeidzot, mēs pievienojām galvenes, kas norāda pamatteksta satura veidu kā JSON, un nodrošinājām API atslēgu, izmantojot x-api-key galveni.

Palaižot šo komandu, mēs saņemam šādu izvadi:

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

Tā ir pareizā izvade.

Šim projektam mēs izveidosim NodeJS skriptu, lai iegūtu datus no API. Tas nozīmē, ka jums būs jāinstalē NodeJS. Jums būs nepieciešams arī NPM vai jebkurš cits pakotņu pārvaldnieks, lai Node pārvaldītu projekta atkarības. Es arī izmantošu Bash termināli, lai palaistu komandas.

Lai izmantotu API JavaScript, vispirms izveidojam tukšu projekta mapi un atveram to terminālī.

mkdir metascraping-js && cd metascraping-js

Pēc tam mēs varam izveidot failu, kurā rakstīsim skriptu:

touch index.js

Tad mēs varam izveidot projektu kā mezgla projektu:

npm init -y

Lai mūsu failā izmantotu ESModule sintaksi, faila package.json saknei pievienojiet rindiņu “type“ : “module”, lai tas izskatītos šādi:

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

Tālāk mēs instalēsim node-fetch pakotni. Šī pakotne nodrošina NodeJS ielādes funkciju, kas ir līdzīga pārlūkprogrammas ieneses funkcijai. Tas atvieglo HTTP pieprasījumu veikšanu NodeJS, nekā izmantojot iebūvēto http moduli pieprasījumu veikšanai.

npm install node-fetch

Kad pakotne ir pareizi instalēta, mēs varam sākt rediģēt skriptu. Atveriet failu index.js, izmantojot jūsu izvēlēto teksta redaktoru. Manā gadījumā es izmantošu termināļa nano teksta redaktoru.

nano index.js

Rediģējot failu index.js, mēs sākam importējot funkciju Fetch, kas ir node-fetch moduļa noklusējuma eksports.

import fetch from 'node-fetch'

Pēc tam mēs definēsim mūsu pieprasījuma pamattekstu. Šī būs JSON virkne ar url rekvizītu. URL rekvizīta vērtība ir tīmekļa lapa, kuras metadatus mēs vēlamies iegūt.

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

Pēc tam mēs varam definēt pieprasījuma opcijas, kuras mēs nosūtīsim ieneses funkcijai, kad to galu galā izsauksim.

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

Mēs esam definējuši mūsu pieprasījuma metodi kā POST pieprasījumu. Mēs arī definējām divas galvenes. Viens norāda, ka pamattekstā ir JSON dati, bet otrs nodrošina API atslēgu.

  Atrodiet vienkāršas Pateicības receptes, izmantojot šīs lietotnes un vietnes

Varat aizstāt ar savu faktisko API atslēgu. Praksē API atslēga nedrīkst būt cieti iekodēta failā, bet tā jāielādē, izmantojot vides mainīgos. Visbeidzot, mēs norādījām ķermeņa īpašību kā ķermeņa konstantes vērtību, ko definējām iepriekš.

Visbeidzot mēs veicam zvanu, lai atnestu

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

Šeit mēs esam izsaukuši funkciju Fetch, nododot API galapunktu un iepriekš definētās opcijas. Tā kā fetch atgriež solījumu, mēs pievienojām atzvanīšanu, kas parsē JSON atbildes, izmantojot to.

Atzvanīšana atgriež citu solījumu, un, kad tas tiek atrisināts, mēs atgriezīsimies uz console.log() atgriezto objektu.

Galu galā mūsu failam vajadzētu izskatīties šādi.

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

Lai palaistu skriptu, saglabājiet labojumus un aizveriet nano vai izmantoto teksta redaktoru, pēc tam ievadiet šo komandu:

node .

Jums vajadzētu iegūt šādus metadatus:

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

Izmantojot pcdream.lt API ar PHP

Lai izmantotu pcdream.lt metascraping API, vispirms pārliecinieties, vai jūsu vietējā datorā ir instalēts PHP un Composer.

  Kā no tālruņa skenēt WiFi tīklu visām pievienotajām ierīcēm

Lai sāktu, izveidojiet un atveriet projekta mapi.

mkdir metascraping-php && cd metascraping-php

Pēc tam instalējiet GuzzleHTTP. Guzzle ir viens no daudzajiem PHP klientiem, ko varat izmantot ar pcdream.lt API.

composer require guzzlehttp/guzzle

Kad Guzzle ir instalēts, mēs varam izveidot skriptu ar

touch script.php

Tad mēs varam sākt rakstīt kodu. Izmantojot izvēlēto teksta redaktoru, atveriet failu script.php. Manā gadījumā es izmantošu nano, kas ir termināļa teksta redaktors.

nano script.php

Skripta iekšpusē mēs ievietojam katla plāksni PHP

<?php
    // All code goes here
?>

Tagad, lai ielādētu paplašinājumus, no Guzzle importējiet klases Pieprasījums un Klients. Šis kods ir jāieraksta starp , ko mēs rakstījām iepriekš.

require_once('vendor/autoload.php');

use GuzzleHttpClient;
use GuzzleHttpPsr7Request;

Tālāk mēs varam izveidot klientu, izveidojot GuzzleHttpClient klasi

$client = new GuzzleHttpClient();

Pēc tam mēs varam definēt pieprasījuma galvenes. Šim konkrētajam pieprasījumam mēs nodrošināsim divas galvenes, no kurām viena norāda, ka pamatteksta satura tips ir JSON, bet otrā satur mūsu API atslēgu.

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

Aizstājiet ar savu faktisko API atslēgu no pcdream.lt API informācijas paneļa.

Tad mēs varam definēt ķermeni. Mūsu gadījumā pamatteksts būs JSON virkne ar rekvizīta URL iestatītu uz “https://twitter.com”.

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

Lai izveidotu pieprasījumu, mēs izveidojam iepriekš importēto pieprasījuma klasi, nododot pieprasījuma metodi, beigu punktu, galvenes un pieprasījuma pamattekstu.

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

Tālāk mēs izmantojam klientu, lai nosūtītu pieprasījumu.

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

Pēc tam mēs varam izvilkt pieprasījuma pamattekstu un izdrukāt to konsolē

echo $response->getBody();

Ja esat pareizi nokopējis kodu, failam script.php vajadzētu izskatīties šādi

<?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.pcdream.lt.com/metascraping', $headers, $body);

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

	echo $response->getBody();
?>

Saglabājiet skriptu, aizveriet to un palaidiet to, izmantojot

php script.php

Jums vajadzētu iegūt šādu izvadi:

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

Nobeiguma vārdi

Šajā rokasgrāmatā tika apskatīti dažādi veidi, kā izmantot pcdream.lt metascraping API.

Metascraping API ļauj nodrošināt arī vairāk parametru, nevis tikai URL. Viens no šādiem parametriem ir starpniekservera parametrs, kuram var piekļūt tikai ar pcdream.lt API premium plānu. Neatkarīgi no tā, pcdream.lt API joprojām ir pietiekami jaudīga daudziem lietojumiem.

Plašāku informāciju skatiet oficiālajā pcdream.lt API dokumentācijā.