Модерно уеб сканиране: Използване на JavaScript и Smartproxy за възстановяване на данни

Metacritic е платформа за прегледи, обхващаща игри, филми, телевизионни сериали и музика. Основната му цел е да насочва потребителите при вземането на по-информирани решения за това как да инвестират парите си в развлечения. Чрез уникален показател, разработен от самата платформа, Metacritic признава важността на мненията на потребителите, като ги смята за ценни за онези, които търсят насоки отвъд обикновените видеоклипове в YouTube. Мисията на сайта се свежда до подпомагане на потребителите да решат интелигентно как да изразходват времето и парите си, като събира различни мнения и ги представя по ясен начин с точки.

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

Първоначални настройки

За да започнем проект, трябва да сме сигурни, че имаме инсталирана рамка за изпълнение на локален JavaScript, тоест Node.js. Можете да го проверите на тази връзка: https://nodejs.org/en. Имайте предвид, че тази статия е спонсорирана от Smartproxy, предоставяйки ни необходимата прокси инфраструктура, за да предотвратим проследяването/блокирането на нашето приложение.

Продължавайки с разработването на нашето решение, можем да създадем папка с помощта на командата mkdir js_scraping и вътре в директорията, напишете npm init — yes. Това е мястото, където ще започнем проекта, който ще съдържа файловете.

mkdir js_scraping
npm init - yes

Също така ще трябва да инсталираме библиотека за работа с HTML (Cheerio) и друга за изобразяване и контрол на действията на браузъра (Playwright). Командата за изпълнение на тази задача е npm install cheerio и npm init playwright@latest. Можете да посетите официалната страница на Playwright на адрес https://playwright.dev/docs/intro за повече информация относно рамката.

Постоянни пълномощници

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

Архитектурата на жилищния прокси е по същество сървър, който използва IP адрес от интернет доставчик, а не от център за данни. Всеки такъв адрес има физическо местоположение. Когато се свържете с интернет, вашият IP разкрива вашето местоположение и предоставя информация за вашия браузър и бисквитки. Жилищните IP адреси се регистрират от доставчиците на интернет услуги в обществени бази данни, което позволява на уебсайтовете да идентифицират доставчика, мрежата и местоположението на устройството. Онлайн услугите обикновено разпознават домашните IP адреси като реални хора, за разлика от IP адресите на центъра за данни. Използването на тези услуги може да ускори процеса на разработка, позволявайки на софтуерните инженери свободата да се съсредоточат върху решението. Много от тези жилищни прокси услуги имат собствената технология за автоматично завъртане на IP, което ни позволява да се тревожим по-малко за ограниченията.

За повече подробности можете да разгледате https://smartproxy.com/blog/what-is-a-residential-proxies-network.

Smartproxy и настройка на прокси

Smartproxy е доставчик на прокси решения и събиране на данни в интернет, като една от основните им цели е да помогне за отключване на публично достъпни данни. В допълнение, те предлагат лесни за употреба инструменти за управление на прокси сървъри, достъпни за всеки.

Те предлагат предимно жилищни проксита, което означава, че предоставените IP адреси са от реални устройства в домовете, за разлика от центровете за данни. Основно предимство на ротационните проксита е, че те променят IP адреса при всяка заявка или след определен интервал от време. Това е от полза за много задачи, като уеб скрапиране, тъй като предотвратява откриването или блокирането на скрепера.

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

За да създадете акаунт, просто посетете Smartproxy, регистрирайте се, изберете продукта, който най-добре отговаря на вашия бизнес профил, и се захващайте за работа. За нашия пример избрахме Residential Proxies с 5 GB трафик, което е повече от достатъчно за нашите цели и предлага добра стойност за парите.

Smartproxy предлага гъвкави ценови планове, които ви позволяват да плащате в движение. Това е особено полезно, когато се нуждаем от по-мащабируема архитектура.

Навигирайки в съвременните нужди от поверителност и цифрова ефективност, Smartproxy предлага авангардни прокси решения, съобразени с вашите уникални изисквания. Щраквайки върху тази връзка, ще намерите планове, прецизно проектирани да съответстват на вашите архитектурни и ресурсни реалности. Не пропускайте възможността да подобрите вашето онлайн сърфиране и сигурност с един от лидерите на пазара! Абонирайте се сега и усетете разликата.

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

В генератора на крайни точки е възможно да се определи методът на свързване. В нашия случай ще използваме връзката чрез потребител. Освен това имаме възможност да изберем местоположението и за този пример ще изберем Бразилия. Избраният тип сесия е Ротация, която предоставя нов IP за всяка заявена сесия в избрания регион. Ако уебсайтът, от който събираме информация, се намира в Бразилия или друг регион, стратегическо е да се използва крайна точка с близко местоположение. Има и алтернатива за използване на фиксирани IP за определен период, известна като залепени. Тази опция е идеална за задачи, които изискват повече човешко взаимодействие с браузъра или които отнемат повече време за изпълнение.

Изключително интуитивна функция на таблото за управление е интеграцията с други езици, достъпна чрез бутона примери на код. За повече подробности те имат отлична документация с много ясни обяснения за други продукти. Можете да го проверите тук: https://help.smartproxy.com/docs/residential-authentication-methods.

Създаване на екземпляр на браузър

В предишния раздел се задълбочихме в работата на таблото за управление на конфигурацията. Сега ще започнем да изграждаме нашия скрепер. За да направим това, ще настроим проксито, като създадем JavaScript файл с име config.js. Този файл ще съдържа три променливи, които ще бъдат експортирани като модул. От съображения за сигурност данните за потребителското име и паролата са скрити.

Нека продължим със създаването на файл с име instancePlaywright.js, който ще служи като наш браузър по подразбиране. Този файл също ще бъде експортиран като модул, което ни позволява да го използваме в следващите стъпки. В него ще импортираме Playwright и прокси модула за конфигуриране, който споменахме по-рано.

Ще използваме аргументи за превключване на браузъра по подразбиране, които са много често срещани в света на сканирането на данни, както е показано на изображението по-долу.

Вече създадохме нашия речник с аргументите на браузъра, както и конфигурацията на прокси сървъра. Ако параметърът е верен, той ще бъде активиран.

И накрая, ние настроихме останалите конфигурации, за да диктуват поведението на нашия браузър по подразбиране. Нашата функция ще върне променливите „браузър“, „страница“, „код“ и „html“, които планираме да използваме. В заключение ще експортираме всичко това като модул.

По-долу е нашият код, който ще използва екземпляра на нашия браузър.

Тестване чрез услугата Smartproxy

Преди да започнем да изграждаме скрепера за данни, е изключително важно да тестваме и да се уверим, че конфигурираният прокси работи правилно. За целта създадохме функция, която ще използва cheerio и браузъра, който предварително конфигурирахме по-рано. Тази функция има за цел достъп до уебсайта https://api.ipify.org/?format=json, който ще ни предостави текущия IP адрес и ще връща HTML във формат на речник. Изображението по-долу опростява кода за илюстрация.

Стартирайки този скрипт в терминала, използвайки първо VPN услугата, получаваме следния резултат.

Запитвайки този IP адрес, намираме местоположението му по-долу:

За да използваме прокси услугите, които внедрихме, трябва да зададем параметъра useProxy на true, както е обяснено в изображението по-долу. Той приема два параметъра и връща четири променливи.

Изпълнявайки нашия скрипт, имаме следните IP адреси, използвайки конфигурацията за ротация, дефинирана в таблото за управление на Smartproxy.

И двата адреса се намират в САЩ, но в различни градове. Струва си да се отбележи, че докато регионалният низ трябва да бъде посочен, потребителското име и паролата ще останат постоянни.

Използването на местни проксита предлага няколко предимства. Първият е свободата да не се притеснявате за мрежовата инфраструктура, когато изпълнявате приложения. Второто предимство е техният легитимен външен вид, тъй като IP адресите идват от реални устройства, което ги прави по-малко податливи на блокове в сравнение с IP адресите, произхождащи от центрове за данни, както беше споменато по-рано.

Ротацията също е функция, тъй като с всяка заявка ще получим нов IP адрес или такъв за определен период. Тъй като домашните връзки са разпространени по целия свят, можете да получите проксита от различни географски местоположения. Жилищните проксита се използват широко за дейности, които изискват по-„човешки“ вид, тоест обичайна употреба. Трябва също да споменем, че някои онлайн услуги имат по-строги ограничения върху трафика от проксита на центрове за данни. Следователно предпочитането на местни прокси сървъри може да бъде начин за заобикаляне на тези ограничения. Като цяло, жилищните проксита обикновено са по-скъпи поради тяхното естество и възприемани предимства. Въпреки това, в зависимост от обема на информацията, която търсите, инвестицията може да си струва, вместо да се сблъскате с постоянна забрана. И нашият партньор за тази статия има страхотни планове да започне вашето пътуване за извличане на данни.

В следващата тема ще изградим нашия скрепер за данни и най-накрая ще започнем извличането на информация.

Конструкция на скрепера за данни

Сега, след като имаме настроена нашата прокси инфраструктура, можем да продължим с разработването на приложението, което ще извършва събирането на данни.

Анализирайки сайта на Metacritic, трябва да помислим как да съберем тази информация. Структурата на сайта се определя от страници и във вътрешната архитектура на нашето приложение ще трябва да използваме техниката за навигиране до следващата страница, докато бутонът съществува. Друго предизвикателство е затварянето на изскачащия прозорец, който приема правилата за бисквитки.

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

При достъп до инструментите за разработчици можем да извлечем обектите за селектор, за да получим информация от етикетите, от които се нуждаем. Тук JavaScript блести, особено по отношение на производителността. Като език, който взаимодейства директно с браузъра, значително помага в развитието.

Таблицата по-долу показва основните целеви тагове и описанието, което представлява всеки от тях. Можете да получите достъп до инструментите за разработчици и да проверите всеки от тези тагове с помощта на конзолата на браузъра.

Нека установим някои основни функции за справяне с повтарящи се ситуации. Една от тези функции е предназначена да накара нашия алгоритъм да идентифицира бутон и, ако е наличен, да щраква върху него многократно, докато изчезне. Така разработихме функцията, наречена nextPage, която взема обект на страница и два селектора, начален и краен. По същество тази функция проверява за наличието на бутон, който води към следващата страница. Ако бутонът бъде идентифициран, алгоритъмът ще го натиска, докато вече не е наличен; в противен случай ще бъде върната грешка. Има много подходи към това предизвикателство, но ние избрахме този. Следният код илюстрира нашия избор.

Друг важен проблем е, че всеки път, когато влизаме в страницата, се появява изскачащ прозорец с искане да приемем условията. Това обаче не е полезно за нас, така че ще създадем функция, която на базата на селектор идентифицира изскачащия прозорец и го затваря незабавно. Кодът е даден по-долу.

Първата функция има за цел да присвои хеш идентификатор на всеки изтеглен елемент, като използва собствената JavaScript библиотека, crypto.

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

По-долу можете да прегледате изпълнението на тези две функции.

Нека завършим с функцията, отговорна за извличането на данните. Първо, ние установяваме променливи, които инстанцират браузъра, включвайки функцията за затваряне на изскачащ прозорец, ако се появи, и зареждане на неговия HTML. С помощта на функцията map, естествена за JavaScript, добавяме всички тагове, посочени в таблицата с тагове, и след това връщаме речник, съдържащ тези данни. Тази информация е групирана в списък с възли. Тук също така интегрираме функцията nextPage, която ще продължи да щраква, докато следващият бутон вече не бъде открит. Тази структура ни позволява да събираме информация от всяка страница, като непрекъснато добавяме към нашия JSON файл.

По-долу ще видите пълния код, включващ всички споменати функции. Въпреки че е лесен, този код е здрав за извличане на данни от целевата страница и адаптивен за производствени среди.

Резултати

В този раздел ще разгледаме получените резултати и нашите разсъждения относно използваната услуга.

В таблото за управление на Smartproxy можем да видим някои статистики за жилищния прокси. За нашите тестове имахме закупен продукт от 5GB; нашето общо потребление беше 0,34 GB, което представлява 6,76% от потреблението на услугата. По отношение на трансферите (изтегляне/качване), т.е. трансферите между браузъра и протоколите, имаше 0,338 изтегляния и 0,018 качвания. Общо 10 566 заявки за деня на изпълнение на скрипта. В зависимост от дизайна на алгоритъма и това, което целим да извлечем, това ще повлияе на резултатите. Следователно е жизненоважно да очертаете решението, преди да се заемете с кодирането. Освен това е важно да разберете проблема и да го разделите на части за окончателното решение.

Изображението по-долу показва резултатите в детайли по отношение на консумацията.

Можем да видим потреблението по цели и да видим кои уебсайтове използват нашите скрепери. Освен сайта на Metacritic, други платформи изглежда консумират повече гигабайти, което е интересно да се оцени. Много сайтове може да са натоварени с приложения за SEO маркетинг, което забавя процеса на събиране на данни. Следователно трябва да обърнем голямо внимание на тези аспекти. По-долу можем да видим подробно какво обсъдихме току-що.

За нашите настройки за ротация на IP можем да видим в изображенията по-долу, че са били успешни и с всяка заявка адресите се превключваха автоматично от платформата Smartproxy, анонимизирайки нашите адреси. Сякаш всеки път, когато влизаме в различна страница, ще бъде през различен IP. Това е предимството да имате инструмент за извършване на този вид операция.

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

За повече информация можете да се консултирате с хранилището на GitHub с кода.

{
    "title": "The Legend of Zelda: Ocarina of Time",
    "url": "/game/nintendo-64/the-legend-of-zelda-ocarina-of-time",
    "date": "November 23, 1998",
    "platform": "Nintendo64",
    "score": "99",
    "summary": "As a young boy, Link is tricked by Ganondorf, the King of the Gerudo Thieves. 
              The evil human uses Link to gain access to the Sacred Realm, where he places his tainted hands on Triforce and transforms the beautiful Hyrulean landscape into a barren wasteland. Link is determined to fix the problems he helped to create, so with the help of Rauru he travels through time gathering the powers of the Seven Sages.",
    "ids": "9a4ed74f8e8d093fd24e57372040fff6ab6d4277"
  },
  {
    "title": "Tony Hawk's Pro Skater 2",
    "url": "/game/playstation/tony-hawks-pro-skater-2",
    "date": "September 20, 2000",
    "platform": "PlayStation",
    "score": "98",
    "summary": "As most major publishers' development efforts shift to any number of next-generation platforms, Tony Hawk 2 will likely stand as one of the last truly fantastic games to be released on the PlayStation.",
    "ids": "c241e2c0b15d3e08d27e090144c56f9c946cba7e"
  },
  {
    "title": "Grand Theft Auto IV",
    "url": "/game/playstation-3/grand-theft-auto-iv",
    "date": "April 29, 2008",
    "platform": "PlayStation3",
    "score": "98",
    "summary": "[Metacritic's 2008 PS3 Game of the Year; Also known as \"GTA IV\"]  What does the American Dream mean today? For Niko Belic, fresh off the boat from Europe. It's the hope he can escape his past. For his cousin, Roman, it is the vision that together they can find fortune in Liberty City, gateway to the land of opportunity. As they slip into debt and are dragged into a criminal underworld by a series of shysters, thieves and sociopaths, they discover that the reality is very different from the dream in a city that worships money and status, and is heaven for those who have them an a living nightmare for those who don't. [Rockstar Games]",
    "ids": "b7d0c26e30c44c321d724f137c8e8297750561a6"
  },
  {
    "title": "SoulCalibur",
    "url": "/game/dreamcast/soulcalibur",
    "date": "September 8, 1999",
    "platform": "Dreamcast",
    "score": "98",
    "summary": "This is a tale of souls and swords, transcending the world and all its history, told for all eternity... The greatest weapons-based fighter returns, this time on Sega Dreamcast. Soul Calibur unleashes incredible graphics, fantastic fighters, and combos so amazing they'll make your head spin!",
    "ids": "cede055ef55649111e6696f7c74345475af23193"
  },
  {
    "title": "Grand Theft Auto IV",
    "url": "/game/xbox-360/grand-theft-auto-iv",
    "date": "April 29, 2008",
    "platform": "Xbox360",
    "score": "98",
    "summary": "[Metacritic's 2008 Xbox 360 Game of the Year; Also known as \"GTA IV\"]  What does the American Dream mean today? For Niko Belic, fresh off the boat from Europe. It's the hope he can escape his past. For his cousin, Roman, it is the vision that together they can find fortune in Liberty City, gateway to the land of opportunity. As they slip into debt and are dragged into a criminal underworld by a series of shysters, thieves and sociopaths, they discover that the reality is very different from the dream in a city that worships money and status, and is heaven for those who have them an a living nightmare for those who don't. [Rockstar Games]",
    "ids": "55035b9d61a6f9ef72f6f8f6dfd125b4ccf362bb"
  },
  {
    "title": "Super Mario Galaxy",
    "url": "/game/wii/super-mario-galaxy",
    "date": "November 12, 2007",
    "platform": "Wii",
    "score": "97",
    "summary": "[Metacritic's 2007 Wii Game of the Year] The ultimate Nintendo hero is taking the ultimate step ... out into space. Join Mario as he ushers in a new era of video games, defying gravity across all the planets in the galaxy. When some creature escapes into space with Princess Peach, Mario gives chase, exploring bizarre planets all across the galaxy. Mario, Peach and enemies new and old are here. Players run, jump and battle enemies as they explore all the planets in the galaxy. Since this game makes full use of all the features of the Wii Remote, players have to do all kinds of things to succeed: pressing buttons, swinging the Wii Remote and the Nunchuk, and even pointing at and dragging things with the pointer. Since he's in space, Mario can perform mind-bending jumps unlike anything he's done before. He'll also have a wealth of new moves that are all based around tilting, pointing and shaking the Wii Remote. Shake, tilt and point! Mario takes advantage of all the unique aspects of the Wii Remote and Nunchuk controller, unleashing new moves as players shake the controller and even point at and drag items with the pointer. [Nintendo]",
    "ids": "bf33e0eadaf538352069ac7fee0ec58b4c47ff94"
  },
  {
    "title": "Super Mario Galaxy 2",
    "url": "/game/wii/super-mario-galaxy-2",
    "date": "May 23, 2010",
    "platform": "Wii",
    "score": "97",
    "summary": "Super Mario Galaxy 2, the sequel to the galaxy-hopping original game, includes the gravity-defying, physics-based exploration from the first game, but is loaded with entirely new galaxies and features to challenge players. On some stages, Mario can pair up with his dinosaur buddy Yoshi and use his tongue to grab items and spit them back at enemies. Players can also have fun with new items such as a drill that lets our hero tunnel through solid rock. [Nintendo]",
    "ids": "473b5ee831ab054cf7e4754b072e0755288f462b"
  },
  {
    "title": "Red Dead Redemption 2",
    "url": "/game/xbox-one/red-dead-redemption-2",
    "date": "October 26, 2018",
    "platform": "XboxOne",
    "score": "97",
    "summary": "Developed by the creators of Grand Theft Auto V and Red Dead Redemption, Red Dead Redemption 2 is an epic tale of life in America’s unforgiving heartland. The game’s vast and atmospheric world also provides the foundation for a brand new online multiplayer experience. America, 1899. The end of the Wild West era has begun. After a robbery goes badly wrong in the western town of Blackwater, Arthur Morgan and the Van der Linde gang are forced to flee. With federal agents and the best bounty hunters in the nation massing on their heels, the gang has to rob, steal and fight their way across the rugged heartland of America in order to survive. As deepening internal fissures threaten to tear the gang apart, Arthur must make a choice between his own ideals and loyalty to the gang that raised him. [Rockstar]",
    "ids": "e8b079b3c758208b603efde2b6a06050c1d07bb9"
  },
  {
    "title": "Grand Theft Auto V",
    "url": "/game/xbox-one/grand-theft-auto-v",
    "date": "November 18, 2014",
    "platform": "XboxOne",
    "score": "97",
    "summary": "Grand Theft Auto 5 melds storytelling and gameplay in unique ways as players repeatedly jump in and out of the lives of the game's three protagonists, playing all sides of the game's interwoven story.",
    "ids": "c05b5d7b59ba98be4e481ede342c0d457a71a0a2"
  },
  {
    "title": "Grand Theft Auto V",
    "url": "/game/playstation-3/grand-theft-auto-v",
    "date": "September 17, 2013",
    "platform": "PlayStation3",
    "score": "97",
    "summary": "Los Santos is a vast, sun-soaked metropolis full of self-help gurus, starlets and once-important, formerly-known-as celebrities. The city was once the envy of the Western world, but is now struggling to stay afloat in an era of economic uncertainty and reality TV. Amidst the chaos, three unique criminals plot their own chances of survival and success:  Franklin, a former street gangster in search of real opportunities and serious cheddar; Michael, a professional ex-con whose retirement is a lot less rosy than he hoped it would be; and Trevor, a violent maniac driven by the chance of a cheap high and the next big score. Quickly running out of options, the crew risks it all in a sequence of daring and dangerous heists that could set them up for life.",
    "ids": "0ba98aa810f2d6ed6a88274c03a98754cbf83b33"
  },
  {
    "title": "Disco Elysium: The Final Cut",
    "url": "/game/pc/disco-elysium-the-final-cut",
    "date": "March 30, 2021",
    "platform": "PC",
    "score": "97",
    "summary": "Disco Elysium - The Final Cut is the definitive edition of the smash-hit RPG. Pursue your political dreams in new quests, meet and question more of the city's locals, and explore a whole extra area. Full voice-acting, controller support, and expanded language options also included. Get even more out of this award-winning open world. You're a detective with a unique skill system at your disposal and a whole city block to carve your path across. Interrogate unforgettable characters, crack murders, or take bribes. Become a hero or an absolute disaster of a human being.",
    "ids": "3b2e04f114596590f9c17b51a336602f0cac5217"
  },
  {
    "title": "Grand Theft Auto V",
    "url": "/game/xbox-360/grand-theft-auto-v",
    "date": "September 17, 2013",
    "platform": "Xbox360",
    "score": "97",
    "summary": "Los Santos is a sprawling sun-soaked metropolis full of self-help gurus, starlets and once-important stars. The city was once the envy of the Western world, but is now struggling to stay relevant in an era of economic uncertainty and reality TV. Amidst the chaos, three very different criminals chart their own chances of survival and success:  Franklin, a former street gangster, now looking for real opportunities and fat stacks of cash; Michael, a professional ex-con whose retirement is significantly less rosy than he hoped it would be; and Trevor, a violent maniac driven by the chance of a cheap high and the next big score. Rapidly running out of options, the crew risks everything in a series of bolt and dangerous heists that could set them up for the long haul.",
    "ids": "c5b2eea5de4b607be80dd21ddaf1282af9afd268"
  },
  {
    "title": "Tony Hawk's Pro Skater 2",
    "url": "/game/dreamcast/tony-hawks-pro-skater-2",
    "date": "November 6, 2000",
    "platform": "Dreamcast",
    "score": "97",
    "summary": "Hawk's back - with new technology, new pros and new tricks! THPS2, the legend rides on! Skate as legendary Tony Hawk or any one of 12 other pro skaters. Create your own custom skaters. Multiple play modes including 1-Player, Career and Free Skate modes, as well as 2-player modes such as Trick Attack, Graffiti Tag and Horse. Build your own custom skate parks with the real-time 3D park editor.",
    "ids": "79878c5ab307a6f2fc8cf648c6f7ef32d6931965"
  },
  {
    "title": "The Legend of Zelda: Breath of the Wild",
    "url": "/game/switch/the-legend-of-zelda-breath-of-the-wild",
    "date": "March 3, 2017",
    "platform": "Switch",
    "score": "97",
    "summary": "Forget everything you know about The Legend of Zelda games. Step into a world of discovery, exploration and adventure in The Legend of Zelda: Breath of the Wild, a boundary-breaking new game in the acclaimed series. Travel across fields, through forests and to mountain peaks as you discover what has become of the ruined kingdom of Hyrule in this open-air adventure. Explore the wilds of Hyrule any way you like - Climb up towers and mountain peaks in search of new destinations, then set your own path to get there and plunge into the wilderness. 
              Along the way, you'll battle towering enemies, hunt wild beasts and gather ingredients for the food and elixirs you'll need to sustain you on your journey. More than 100 Shrines of Trials to discover and explore - Shrines dot the landscape, waiting to be discovered in any order you want. Search for them in various ways, and solve a variety of puzzles inside. Work your way through the traps and devices inside to earn special items and other rewards that will help you on your adventure.\n*    Be prepared and properly equipped - With an entire world waiting to be explored, you'll need a variety of outfits and gear to reach every corner. You may need to bundle up with warmer clothes or change into something better suited to the desert heat. Some clothing even has special effects that, for example, can make you faster and stealthier.\n*    Battling enemies requires strategy - The world is inhabited with enemies of all shapes and sizes. Each one has its own attack method and weaponry, so you must think quickly and develop the right strategies to defeat them.\n*    amiibo compatibility - Tap the Wolf Link amiibo (sold separately) to make Wolf Link appear in game. Wolf Link will attack enemies on his own and help you find items you're searching for.",
    "ids": "c9872a98e6ef0220ee26f2bfeaeceae8f9bf20f1"
  },
  {
    "title": "Tony Hawk's Pro Skater 3",
    "url": "/game/playstation-2/tony-hawks-pro-skater-3",
    "date": "October 28, 2001",
    "platform": "PlayStation2",
    "score": "97",
    "summary": "Challenge up to four friends in online competitions over a LAN or the Internet.  Take them on in both Trick Attack and Graffiti modes. [Activision]",
    "ids": "6ab7b42f8846bc738e80ec9133e5d34503ed9dcb"
  }

Източници

https://nodejs.org/en

https://playwright.dev/docs/intro

https://help.smartproxy.com/docs/residential-authentication-methods

https://api.ipify.org/?format=json

https://whatismyipaddress.com/

https://www.metacritic.com/