Как отобразить информацию с веб-сайта в моем боте discord?

#javascript #node.js #discord.js

#javascript #node.js #discord.js

Вопрос:

Я создаю бота discord (Javascript, Node.js , Discord.js ) который основан на игре (многопользовательской онлайн-игре).Итак, я в значительной степени закончил разработку бота, за исключением одной вещи, которую я действительно хотел бы добавить. Итак, в этой игре есть несколько рекордов, которые можно посмотреть здесь — https://www.hzgaming.net/high.php . Итак, я хочу отобразить эти рекорды (денежный рекорд — https://www.hzgaming.net/high.php?scores=money ) (Материалы для рекордов — https://www.hzgaming.net/high.php?scores=materials ) и все такое. Итак, что я хотел бы иметь, так это .. когда пользователь вводит cmd типа «!рекордные деньги», он должен показывать рекорд, доступный по ссылке на веб-сайт, которую я привел выше, и аналогично..когда они используют «! материалы с наивысшим рейтингом», он должен показывать наивысший рейтинг материалов по этой ссылке соответственно. Я хочу, чтобы это было по этой ссылке, потому что она постоянно меняется и обновляется. Кроме того, я почти уверен, что это возможно, потому что есть похожий бот, который показывает то же самое, что я объяснил. Я надеюсь, вы поняли, что я имел в виду. Мне бы очень хотелось получить ответ на этот вопрос, также было бы здорово, если бы вместе с ответом был предоставлен пример кода, чтобы его было легко понять.

Пример для cmd приведен ниже —

пользователь — !бот-рекордсмен money — денежные рекорды

  1. Celia_Fernandz — общее состояние в размере 41 085 610 долларов
  2. Armando_Domrani — общее состояние в размере 40 204 664 долларов
  3. Sergio_Box — общее состояние в размере 38 199 486 долларов
  4. Tony_Sativa — общее состояние в размере 30 193 261 доллара
  5. Aminox_Trigui — общее состояние в 28 052 188 долларов
  6. Бен_Мартин — общее состояние в размере 23 439 003 долларов
  7. Daryl_Grimes — общее состояние в размере 17 128 518 долларов
  8. Luccas_Von_Koening — общее состояние в размере 16 457 964 долларов
  9. Charlie_Hustle — общее состояние в 14 452 056 долларов
  10. Kevin_Maddox — общее состояние в 13 630 605 долларов

пользователь- !бот-рекордсмен по материалам — 1. Chapo_Diamond — 5 749 300 материалов 2. Van_Damme — 4 923 046 материалов 3. Brandon_Heath_Tsung — 3 906 395 материалов 4. Armando_Domrani — 3,241,925 материалов 5. Tazz_Equinox — 3,187,045 материалов 6. Danny_Ted — 2,868,088 материалов 7. Jack_Paterson — 2,748,249 материалов 8. John_Dixon — 2,548,250 материалов 9. Gab_Alphonse — 2,252,285 материалов 10. Don_Thomax — 2,131,177 материалов ((ВСЕ ОТВЕТОМ БОТА БУДУТ ВСТАВКИ)) (да, так что каким-то образом эти значения должны постоянно обновляться, вот почему я дал ссылку выше)

Пожалуйста, обратите внимание, что код должен быть javascript с использованием discord.js и node.js . Спасибо <3 🙂

Комментарии:

1. Самое главное — использовать эту ссылку, потому что простое использование указанной информации не сработает, поскольку рекорды игры постоянно меняются, и, следовательно, информация также должна меняться автоматически. (Предоставленная ссылка постоянно обновляет рекорды)

Ответ №1:

Я не уверен, возможно ли это из-за страницы «Просто проверяю ваш компьютер, это займет всего несколько секунд», которая всегда будет всплывать (для DDoS защиты). Например, это то, что я получил в своей консоли после запроса некоторых данных:

 <!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
                <meta name="robots" content="noindex, nofollow">
                <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
                <meta http-equiv="refresh" content="12">
                <link rel="Shortcut Icon" href="https://www.hzgaming.net/favicon.ico" type="image/x-icon">
                <title>Just a moment...</title>
                <style>@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:local("Open Sans Regular"),local("OpenSans-Regular"),url(data:font/woff2;base64,
d09GMgABAAAAACjgAA4AAAAAUhQAACiIAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGiIbEBwaBmAAZBEQCoGANONLC4
M8AAE2AiQDhnAEIAWDWgeQShv4QBXjmFXAxsEAi709IypHX42iQhIH/39MoGOIFG6KqtsXWLsNGTEJswgLuVELAuzt
6BPcQHcKGcv5HKXdi eKlYT6O/H7D3cgR jqXNVLasoPuSn55q2H3pbvh3OAu9IvBQY5QmOf5EL/td9nz5tz7szuhl
FHoURhUQJqVpEko1I Ki4WZRSx2vo qLaiHszxbb7Ne0BkhgdhTe1mgqThm6figcxKku0p W2vqybIl4ofbmvDwzr/

// and so on... for a very long time.
  

Я не думаю, что есть способ обойти это, но, если вы чудесным образом найдете способ, именно так я бы получил необходимые данные:

 // you should use this npm package - https://www.npmjs.com/package/node-fetch
const fetch = require('node-fetch');

fetch('https://www.hzgaming.net/high.php?scores=money')
      .then((res) => res.text())
      .then((body) => console.log(body));
  

Комментарии:

1. Привет! Я попробовал второй код, который вы отправили, и вот что он показал

2. Ошибка ссылки: res не определен

3. Извините, но не могли бы вы сказать мне, что я должен делать?

4. Вы установили пакет npm?

5. Да, я это сделал… Я использовал npm install node-fetch в терминале, и да, он был установлен