Как да извлечете метаданни на уебсайтове с помощта на pctechbg.net Meta Scraping API

Като цяло, уеб скрапирането е извличане на данни от уебсайт от HTML, произведен при зареждане на уеб страница.

Metascraping е извличане на метаданните на уеб страницата от мета таговете на уеб страница.

Метаданните на уеб страница са информация за страницата, но не и съдържанието на страницата. Например метаданните могат да включват името на автора, заглавието и описанието на уеб страницата.

Помага на потребителите и търсачките да разберат за какво става въпрос на страницата. Извличането на метаданни позволява на потребителя бързо да събира информация за уеб страници за по-малко време.

Могат да се използват няколко подхода за скрапиране на уеб страници за техните метаданни, включително ръчно скрапиране, използване на библиотека или използване на API като pctechbg.net Metascraping API.

Много начини да убиете котка

За да скрапирате ръчно, можете да отворите уеб страница с помощта на Chrome DevTools и да извлечете метаданните от раздела Elements. Въпреки това, това ръководство, повтарящо се и досадно, когато се занимавате с няколко страници. Можем да автоматизираме задачата, използвайки множество подходи:

Първият подход е да напишете кода от нулата. При този подход вие правите HTTP заявка към уебсайта, чиито метаданни искате да извлечете. След това можете да анализирате HTML отговора, извличайки данни от мета таговете, като използвате регулярни изрази или съвпадение на шаблони. Този подход обаче преоткрива колелото, тъй като ще отделите време за пренаписване на съществуващ код.

Вторият подход е да използвате библиотека на какъвто език за програмиране предпочитате. Това ви позволява да се абстрахирате от детайлите на изпълнението и поддържа нещата прости. Въпреки това, ако езикът за програмиране по ваш избор няма подходяща библиотека или конкретната среда за изпълнение, която използвате, не поддържа библиотеката, тогава не можете да я използвате.

Третият подход е да се използва API като pctechbg.net Metascraping API. Този подход е идеален, защото ви дава единен интерфейс, независимо от езика ви за програмиране. Може да се използва на всеки език, стига да поддържа правене на HTTP заявки.

Тази статия ще демонстрира как да използвате pctechbg.net Metascraping API с cURL, PHP и JavaScript(NodeJS).

Поради недостатъците на други подходи, предимствата на използването на pctechbg.net API са:

  • Той е агностик на езика и средата на изпълнение.
  • Избягвате преоткриването на колелото и отделяте по-малко време за писане на код.
  • Можете да изстържете няколко уебсайта ефективно (за няколко секунди).
  • Той е невероятно лесен за използване.
  • Можете да го използвате безплатно.

Първи стъпки с помощта на pctechbg.net API

За да използвате pctechbg.net API, ще ви трябва API ключ. За да получите такъв, отидете на уебсайта pctechbg.net и създайте безплатен акаунт. След като създадете своя акаунт, влезте в таблото за управление. От таблото за управление трябва да можете да видите вашия API ключ.

  Как да проверите силата на вашия Wi-Fi сигнал

Крайната точка на API се намира на https://api.pctechbg.net.com/metascraping. Когато правите заявка, трябва да предоставите вашия API ключ като заглавка на заявка с името x-api-key и стойността, която е вашият API ключ.

Ще трябва също да подадете допълнителни параметри в тялото на заявката. Това са url, устройство и proxyCountry.

  • URL указва URL адреса на уеб страницата, чиито метаданни искате да изчерпите.
  • Устройството указва устройството, използвано за посещение на сайта при извличане на метаданни. Вашите опции за устройства са мобилни или настолни компютри.
  • Прокси държава указва държавата, от която трябва да бъде направена заявката, преди данните да бъдат изчерпани. Прокси страната обаче е премиум функция и може да се използва само в платените планове pctechbg.net.

Като се има предвид, че параметрите ще бъдат предадени като част от тялото, заявката трябва да бъде POST заявка, тъй като GET заявките не могат да съдържат метаданни.

В първата демонстрация ще използваме помощната програма cURL от командния ред, за да поискаме Metascraping API. За да използвате cURL, първо трябва да го инсталирате.

Ще използвам Bash терминал. Това трябва да е терминалът по подразбиране в macOS и Linux. За Windows ще трябва да инсталирате Git Bash.

След като cURL е инсталиран, можем да използваме командата cURL, за да направим заявката. Ще предадем опции към командата, за да посочим параметрите на заявката: метода на заявката, крайната точка, тялото на заявката и заглавките на заявката.

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

NB: Обратната наклонена черта след първите три реда ви позволява да разделите въведената команда на няколко реда.

Тази команда посочи HTTP метода като POST и крайната точка като pctechbg.net API мета-скрапинг крайна точка.

Изпратихме също тялото на заявката като JSON обект със свойство на URL, указано като https://tesla.com. И накрая, добавихме заглавките, които указват типа на съдържанието на тялото като JSON и предоставихме API ключа, използвайки заглавката x-api-key.

Когато изпълним тази команда, получаваме следния резултат:

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

Това е правилният изход.

За този проект ще създадем NodeJS скрипт за извличане на данни от API. Това означава, че ще ви трябва инсталиран NodeJS. Ще ви е необходим и NPM или друг пакетен мениджър за Node, за да управлявате зависимостите на проекта. Също така ще използвам терминала Bash за изпълнение на команди.

За да използваме API в JavaScript, първо създаваме празна папка на проекта и я отваряме в терминал.

mkdir metascraping-js && cd metascraping-js

След това можем да създадем файла, където ще напишем скрипта:

touch index.js

След това можем да инстанцираме проекта като проект на възел:

npm init -y

За да използвате синтаксиса на ESModule в нашия файл, добавете реда „type“ : „module“ към корена на файла package.json, така че да изглежда така:

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

След това ще инсталираме пакета за извличане на възли. Този пакет предоставя функция за извличане в NodeJS, която е подобна на функцията за извличане на браузъра. Това улеснява отправянето на HTTP заявки в NodeJS, отколкото използването на вградения http модул за отправяне на заявки.

npm install node-fetch

Когато пакетът е правилно инсталиран, можем да започнем да редактираме скрипта. Отворете файла index.js с текстов редактор по ваш избор. В моя случай ще използвам базирания на терминал нано текстов редактор.

nano index.js

Редактирайки файла index.js, започваме с импортиране на функцията за извличане, която е експортът по подразбиране на модула за извличане на възли.

import fetch from 'node-fetch'

След това ще дефинираме тялото на нашата заявка. Това ще бъде JSON низ със свойство url. Стойността на свойството url е уеб страницата, чиито метаданни искаме да получим.

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
}

Дефинирахме нашия метод на заявка като POST заявка. Също така дефинирахме две заглавки. Единият указва, че тялото съдържа JSON данни, а другият предоставя API ключа.

  Научете MLOs с тези 10 курса

Можете да замените <ВАШИЯ API KEY> с вашия действителен API ключ. На практика API ключът не трябва да бъде твърдо кодиран във файла, а трябва да се зарежда с помощта на променливи на средата. И накрая, посочихме свойството body като стойността на константата body, която дефинирахме по-рано.

Накрая правим обаждането за извличане

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

Тук извикахме функцията за извличане, предавайки крайната точка на API и опциите, които дефинирахме по-рано. Тъй като fetch връща обещание, прикачихме обратно извикване, което анализира JSON отговорите, използвайки then.

Обратното извикване връща друго обещание и когато се разреши, отиваме на console.log() върнатия обект.

Така че в крайна сметка нашият файл трябва да изглежда така.

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

За да стартирате скрипта, запазете редакциите и затворете nano или текстовия редактор, който използвате, след което въведете следната команда:

node .

Трябва да получите следните метаданни:

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

Използване на pctechbg.net API с PHP

За да използвате pctechbg.net Metascraping API, първо се уверете, че имате PHP и Composer инсталирани на вашата локална машина.

  Как да настроите и използвате Apple Pay на iPhone

За да започнете, създайте и отворете папката на проекта.

mkdir metascraping-php && cd metascraping-php

След това инсталирайте GuzzleHTTP. Guzzle е един от многото PHP клиенти, които можете да използвате с pctechbg.net API.

composer require guzzlehttp/guzzle

След като Guzzle е инсталиран, можем да създадем скрипт с

touch script.php

След това можем да започнем да пишем кода. С помощта на текстов редактор по ваш избор отворете файла script.php. В моя случай ще използвам nano, който е базиран на терминал текстов редактор.

nano script.php

Вътре в скрипта вмъкваме шаблонен PHP

<?php
    // All code goes here
?>

Сега, за да заредите разширенията, импортирайте класовете Request и Client от Guzzle. Този код трябва да бъде написан между , които написахме преди.

require_once('vendor/autoload.php');

use GuzzleHttpClient;
use GuzzleHttpPsr7Request;

След това можем да създадем клиент, като инстанцираме класа GuzzleHttpClient

$client = new GuzzleHttpClient();

След това можем да дефинираме заглавки за заявката. За тази конкретна заявка ще предоставим две заглавки, едната, която указва, че типът съдържание на тялото е JSON, а другата съдържа нашия API ключ.

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

Заменете <ВАШИЯ API КЛЮЧ ТУК> с вашия действителен API ключ от pctechbg.net API таблото.

След това можем да дефинираме тялото. В нашия случай тялото ще бъде JSON низ с URL адрес на свойството, зададен на „https://twitter.com“

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

За да създадем заявка, ние създаваме класа на заявката, който импортирахме по-рано, като предаваме метода на заявката, крайната точка, заглавките и тялото на заявката.

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

След това използваме клиента, за да изпратим заявката.

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

След това можем да извлечем тялото на заявката и да я отпечатаме на конзолата

echo $response->getBody();

Ако сте копирали кода правилно, файлът script.php трябва да изглежда така

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

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

	echo $response->getBody();
?>

Запазете скрипта, затворете го и го стартирайте с помощта на

php script.php

Трябва да получите следния резултат:

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

Заключителни думи

Това ръководство разгледа различни начини за използване на pctechbg.net Metascraping API.

Приложният програмен интерфейс (API) на Metascraping ви позволява също така да предоставите повече параметри, освен само URL. Един такъв параметър е прокси параметърът, който може да бъде достъпен само с премиум плана на pctechbg.net API. Независимо от това, pctechbg.net API остава достатъчно мощен за много приложения.

Вижте официалната документация на pctechbg.net API за повече информация.