02/09/2023

Cum să extrageți metadatele site-ului folosind API-ul tipstrick.ro Meta Scraping

În general, web scraping este extragerea datelor de pe un site web din HTML produs atunci când o pagină web este încărcată.

Metascraping este extragerea metadatelor paginii web din metaetichetele unei pagini web.

Metadatele unei pagini web sunt informații despre pagină, dar nu și conținutul acesteia. De exemplu, metadatele pot include numele autorului, titlul și descrierea paginii web.

Ajută utilizatorii și motoarele de căutare să înțeleagă despre ce este vorba în pagină. Scraping metadate permite unui utilizator să colecteze rapid informații despre paginile web în mai puțin timp.

Mai multe abordări pot fi utilizate pentru a elimina paginile web pentru metadatele lor, inclusiv scraping manual, folosind o bibliotecă sau folosind un API, cum ar fi API-ul tipstrick.ro Metascraping.

Multe moduri de a ucide o pisică

Pentru a elimina manual, puteți deschide o pagină web folosind Chrome DevTools și puteți extrage metadatele din fila Elemente. Cu toate acestea, acest manual, repetitiv și plictisitor atunci când aveți de-a face cu mai multe pagini. Putem automatiza sarcina folosind mai multe abordări:

Prima abordare este să scrieți codul de la zero. În această abordare, faceți o solicitare HTTP către site-ul web ale cărui metadate doriți să le extrageți. Ulterior, puteți analiza răspunsul HTML extragând date din metaetichetele folosind expresii regulate sau potrivirea modelelor. Cu toate acestea, această abordare reinventează roata, deoarece veți petrece timp rescriind codul existent.

A doua abordare este să utilizați o bibliotecă în orice limbaj de programare preferați. Acest lucru vă permite să faceți abstract asupra detaliilor implementării și menține lucrurile simple. Cu toate acestea, dacă limbajul de programare ales de dvs. nu are o bibliotecă adecvată sau timpul de execuție specific pe care îl utilizați nu acceptă biblioteca, atunci nu o puteți utiliza.

A treia abordare este utilizarea unui API precum API-ul metascraping tipstrick.ro. Această abordare este ideală deoarece vă oferă o interfață uniformă, indiferent de limbajul de programare. Este utilizabil în orice limbă, atâta timp cât acceptă efectuarea de solicitări HTTP.

Acest articol va demonstra cum să utilizați API-ul tipstrick.ro Metascraping cu cURL, PHP și JavaScript (NodeJS).

Din cauza dezavantajelor altor abordări, avantajele utilizării API-ului tipstrick.ro sunt:

  • Este independent de limbaj și mediu de rulare.
  • Eviți să reinventezi roata și petreci mai puțin timp scriind cod.
  • Puteți răzui mai multe site-uri web eficient (într-o chestiune de secunde).
  • Este incredibil de ușor de utilizat.
  • Îl poți folosi gratuit.

Noțiuni introductive de utilizare a API-ului tipstrick.ro

Pentru a utiliza API-ul tipstrick.ro, veți avea nevoie de o cheie API. Pentru a obține unul, accesați site-ul web tipstrick.ro și creați un cont gratuit. După ce v-ați creat contul, conectați-vă la tabloul de bord. Din tabloul de bord, ar trebui să puteți vedea cheia API.

Punctul final API este situat la https://api.tipstrick.ro.com/metascraping. Când faceți o solicitare, ar trebui să furnizați cheia dvs. API ca antet de solicitare cu numele x-api-key și valoarea fiind cheia dvs. API.

  Cum să utilizați emoji pe un Chromebook

De asemenea, va trebui să treceți parametri suplimentari în corpul cererii. Acestea sunt adresa URL, dispozitivul și proxyCountry.

  • URL specifică adresa URL a paginii web ale cărei metadate doriți să le curățați.
  • Dispozitivul specifică dispozitivul utilizat pentru a vizita site-ul la răzuirea metadatelor. Opțiunile dvs. pentru dispozitive sunt mobile sau desktop.
  • Țara proxy specifică țara din care trebuie făcută cererea înainte ca datele să fie eliminate. Țara proxy, totuși, este o caracteristică premium și poate fi utilizată numai în cadrul planurilor plătite tipstrick.ro.

Având în vedere că parametrii vor fi transmiși ca parte a corpului, cererea trebuie să fie o solicitare POST, deoarece cererile GET nu pot conține metadate.

În prima demonstrație, vom folosi utilitarul cURL din linia de comandă pentru a solicita API-ul Metascraping. Pentru a utiliza cURL, va trebui să-l instalați mai întâi.

Voi folosi un terminal Bash. Acesta ar trebui să fie terminalul implicit pe macOS și Linux. Pentru Windows, va trebui să instalați Git Bash.

După ce cURL este instalat, putem folosi comanda cURL pentru a face cererea. Vom transmite comenzii opțiuni pentru a specifica parametrii cererii: metoda de solicitare, punctul final, corpul cererii și anteturile cererii.

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

NB: Bara oblică inversă de după primele trei linii vă permite să împărțiți intrarea comenzii în mai multe linii.

Această comandă a specificat metoda HTTP ca POST și punctul final ca punct final de meta-scraping API tipstrick.ro.

De asemenea, am trimis corpul solicitării ca obiect JSON cu o proprietate URL specificată ca https://tesla.com. În cele din urmă, am adăugat anteturile care specifică tipul de conținut al corpului ca JSON și am furnizat cheia API folosind antetul x-api-key.

Când rulăm această comandă, obținem următoarea ieșire:

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

Aceasta este ieșirea corectă.

Pentru acest proiect, vom crea un script NodeJS pentru a prelua date din API. Aceasta înseamnă că veți avea nevoie de instalarea NodeJS. De asemenea, veți avea nevoie de NPM sau de orice alt manager de pachete pentru ca Node să gestioneze dependențele proiectului. De asemenea, voi folosi terminalul Bash pentru a rula comenzi.

Pentru a folosi API-ul în JavaScript, mai întâi creăm un folder de proiect gol și îl deschidem într-un terminal.

mkdir metascraping-js && cd metascraping-js

După aceasta, putem crea fișierul în care vom scrie scriptul:

touch index.js

Apoi putem instanția proiectul ca proiect Node:

npm init -y

Pentru a utiliza sintaxa ESModule în fișierul nostru, adăugați linia „type“ : „module” la rădăcina fișierului package.json, astfel încât să arate astfel:

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

În continuare, vom instala pachetul node-fetch. Acest pachet oferă o funcție de preluare în NodeJS care este similară cu funcția de preluare a browserului. Acest lucru face mai ușor să faceți cereri HTTP în NodeJS decât utilizarea modulului http încorporat pentru a face cereri.

npm install node-fetch

Când pachetul este instalat corect, putem începe editarea scriptului. Deschideți fișierul index.js folosind un editor de text la alegere. În cazul meu, voi folosi editorul de nano text bazat pe terminal.

nano index.js

Editând fișierul index.js, începem prin a importa funcția fetch, care este exportul implicit al modulului node-fetch.

import fetch from 'node-fetch'

Apoi, vom defini corpul cererii noastre. Acesta va fi un șir JSON cu o proprietate URL. Valoarea proprietății URL este pagina web ale cărei metadate dorim să le obținem.

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

Apoi, putem defini opțiunile de solicitare pe care le vom transmite funcției de preluare când o vom apela în cele din urmă.

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

Am definit metoda noastră de solicitare ca fiind o solicitare POST. Am definit și două anteturi. Unul specifică faptul că corpul conține date JSON, iar celălalt furnizează cheia API.

  Cum se schimbă unitățile riglei în Microsoft Word

Puteți înlocui cu cheia dvs. API reală. În practică, cheia API nu ar trebui să fie codificată în fișier, ci ar trebui să fie încărcată folosind variabile de mediu. În cele din urmă, am specificat proprietatea corpului ca fiind valoarea constantei corpului pe care am definit-o mai devreme.

În cele din urmă, facem apelul pentru preluare

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

Aici, am apelat funcția de preluare, trecând punctul final API și opțiunile pe care le-am definit mai devreme. Deoarece fetch returnează o promisiune, am atașat un callback care analizează răspunsurile JSON folosind apoi.

Callback-ul returnează o altă promisiune, iar când se rezolvă, vom merge la console.log() obiectul returnat.

Deci, în cele din urmă, fișierul nostru ar trebui să arate așa.

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

Pentru a rula scriptul, salvați editările și închideți nano sau editorul de text pe care îl utilizați, apoi introduceți următoarea comandă:

node .

Ar trebui să obțineți următoarele metadate:

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

Folosind API-ul tipstrick.ro cu PHP

Pentru a utiliza API-ul tipstrick.ro Metascraping, asigurați-vă mai întâi că aveți instalate PHP și Composer pe mașina dvs. locală.

Pentru a începe, creați și deschideți folderul de proiect.

mkdir metascraping-php && cd metascraping-php

Apoi, instalați GuzzleHTTP. Guzzle este unul dintre numeroșii clienți PHP pe care îi puteți folosi cu API-ul tipstrick.ro.

composer require guzzlehttp/guzzle

Odată ce Guzzle este instalat, putem crea un script cu

touch script.php

Apoi putem începe să scriem codul. Folosind un editor de text la alegere, deschideți fișierul script.php. În cazul meu, voi folosi nano, care este un editor de text bazat pe terminal.

nano script.php

În interiorul scriptului, inserăm boiler-plate PHP

<?php
    // All code goes here
?>

Acum, pentru a încărca extensiile, importați clasele Request și Client din Guzzle. Acest cod ar trebui scris între pe care le-am scris anterior.

require_once('vendor/autoload.php');

use GuzzleHttpClient;
use GuzzleHttpPsr7Request;

Apoi, putem crea un client prin instanțierea clasei GuzzleHttpClient

$client = new GuzzleHttpClient();

Ulterior, putem defini anteturi pentru cerere. Pentru această solicitare specială, vom furniza două anteturi, unul care specifică că tipul de conținut al corpului este JSON și celălalt care conține cheia noastră API.

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

Înlocuiți cu cheia dvs. API reală din tabloul de bord API tipstrick.ro.

  Cum să utilizați un controler GameCube real sau Wiimote în Dolphin

Apoi, putem defini corpul. În cazul nostru, corpul va fi un șir JSON cu proprietatea URL setată la „https://twitter.com”

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

Pentru a crea o solicitare, instanțiem clasa de solicitare pe care am importat-o ​​mai devreme, trecând metoda de solicitare, punctul final, anteturile și corpul cererii.

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

Apoi, folosim clientul pentru a trimite cererea.

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

După aceea, putem extrage corpul cererii și îl putem imprima pe consolă

echo $response->getBody();

Dacă ați copiat corect codul, fișierul script.php ar trebui să arate așa

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

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

	echo $response->getBody();
?>

Salvați scriptul, închideți-l și rulați-l folosind

php script.php

Ar trebui să obțineți următorul rezultat:

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

Cuvinte finale

Acest ghid a trecut prin diferite moduri de a consuma API-ul tipstrick.ro Metascraping.

API-ul Metascraping vă permite, de asemenea, să furnizați mai mulți parametri decât doar cel URL. Un astfel de parametru este parametrul proxy, care poate fi accesat numai cu planul premium API tipstrick.ro. Indiferent, API-ul tipstrick.ro rămâne suficient de puternic pentru multe utilizări.

Consultați documentația oficială a API-ului tipstrick.ro pentru mai multe informații.

x