• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Pobieranie informacji ze stron internetowych discord bot

Object Storage Arubacloud
0 głosów
861 wizyt
pytanie zadane 3 września 2021 w JavaScript przez Maxxxii Obywatel (1,260 p.)
zamknięte 4 września 2021 przez Maxxxii
Cześć ponownie,

tym razem przychodzę z pytaniem w jaki sposób pobrać informacje z różnych stron internetowych.

np. mamy tę stronę: http://metar.vatsim.net/metar.php?id=epgd i chciałbym, żeby wszystko z tej strony (nie jest tam tego dużo) wyświetlało się w wiadomości do użytkownika bota.

Przepraszam, jeżeli jest to błahe pytanie, ale szukałem tego w internecie i nie mogłem znaleźć(chyba, że źle szukałem)

Pozdrawiam
komentarz zamknięcia: znalezienie rozwiązania

1 odpowiedź

0 głosów
odpowiedź 3 września 2021 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 4 września 2021 przez Maxxxii
 
Najlepsza

Możesz użyć dowolnej biblioteki do obsługi zapytań HTTP w Node np. node-fetch lub axios. Pobierz sobie tą stronę (szczegóły znajdziesz w dokumentacjach podlinkowanych bibliotek), i - w zależności, czy potrzebujesz wydobyć ze strony konkretne informacje, czy zadowala Cię całość danych - sparsuj ją do postaci DOM (przy użyciu np. jsdom) i przy użyciu metod DOM-owych pokroju querySelector oraz propertisów typu textContent, odczytaj to czego potrzebujesz.

komentarz 3 września 2021 przez Maxxxii Obywatel (1,260 p.)
zmieniłem format pliku na .mjs wywaliło błąd, require nie jest dostępny, zmieniłem na import. tylko niestety teraz wywaliło: Cannot read property 'FLAGS' of undefined i zupełnie nie wiem na co to zmienić
komentarz 3 września 2021 przez ScriptyChris Mędrzec (190,190 p.)

Zamień

const {Client, Intents, MessageEmbed} = require("discord.js")

na

import * as Discord from "discord.js";
console.log('Discord:', !!Discord, ' /intents:', Discord.Intents);

i daj znać, co pokaże konsola.

komentarz 3 września 2021 przez Maxxxii Obywatel (1,260 p.)
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for C:\Users\cichy\Desktop\chartsBot\config.json

czyżby był jakiś format mjson? ;)
komentarz 3 września 2021 przez ScriptyChris Mędrzec (190,190 p.)

Ojej, a skąd nagle odwołanie do jakiegoś pliku konfiguracyjnego?

Dobra... :) Myślę że łatwiej Ci będzie, jeśli po prostu użyjesz async IIFE i require, tak jak miałeś na początku oraz przywróć rozszerzenie z .mjs do .js. Możesz od biedy nawet cały kod owinąć w to IIFE (razem z importami przez require na górze). Tylko pamiętaj, że zmienne utworzone w funkcji nie będą widoczne poza nią, bo ona jest asynchroniczna - mógłbyś niby zadeklarować result z fetch przed IIFE, w IIFE to ustawić i poza IIFE poczekać setTimeout-em lub robić inne hacki, ale to nie ma sensu i będzie z tym więcej problemów niż pożytku.

Zapisz po prostu:

const {Client, Intents, MessageEmbed} = require("discord.js")
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]})
const config = require("./config.json")
const fetch = require("node-fetch")

;(async () => {
  const result = await fetch('http://metar.vatsim.net/metar.php?id=epgd')
    .then(res => res.text())
    .then(text => {
      console.log('text:', text);
      return text;
    })
    
  console.log('result:', result);
   
  client.login(config.token)
})();

 

1
komentarz 3 września 2021 przez Maxxxii Obywatel (1,260 p.)
też myślę, że to będzie lepszy pomysł. Bardzo Ci dziękuję i jestem dozgonnie wdzięczny! Mam u Ciebie dług. :)

Podobne pytania

+1 głos
1 odpowiedź 761 wizyt
pytanie zadane 18 września 2021 w JavaScript przez Maxxxii Obywatel (1,260 p.)
0 głosów
0 odpowiedzi 650 wizyt
0 głosów
1 odpowiedź 867 wizyt
pytanie zadane 23 lipca 2020 w JavaScript przez Samek2222 Początkujący (440 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...