Reklama
Strona 2 z 3 PierwszaPierwsza 123 OstatniaOstatnia
Pokazuje wyniki od 16 do 30 z 34

Temat: Strona w necie by pokazac gosci online tibiantis

  1. #16
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    proszę o wybaczenie albowiem umysł mój spaczony nocną zmianą na magazynie
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

  2. #17
    Avatar matek697
    Data rejestracji
    2011
    Wiek
    28
    Posty
    2,109
    Siła reputacji
    14

    Domyślny

    Cytuj Black Keeper napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Można napisać rest api w Pythonie, które by pobierało dane z tej tibijskiej tabelki, do web scrapingu można wykorzystać bibliotekę Beautiful Soup. Potem trzeba stworzyć aplikację internetową, można wykorzystać któryś z frameworków, np. React, Vue.js albo po prostu pisać w Vanilla JS. Aplikacja mogłaby wysyłać request do API, np. co 30 sekund i na podstawie otrzymanego data aktualizowało stronę. Dobrze byłoby przechowywać nicki graczy oraz nazwy grup, dlatego proponuję do naszego restowego API podpiąć bazę danych.


    nie zapomnijmy jeszcze aby uzbroić nasz projekt w niezbędną bilioteke, koniecznie w wersji enterprise: https://isevenapi.xyz/
    Cytuj zbygmunt napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    podobne to takie trochę do zalogowanie w temple, takie uczucie spokoju, pz itd co nie

  3. Reklama
  4. #18
    Avatar Smok_Galana
    Data rejestracji
    2010
    Położenie
    Oberschlesien
    Posty
    3,322
    Siła reputacji
    16

    Domyślny

    huj tam kolega ma mi zrobic jakos za dobre pieniaszki (za darmo) jak ogarnie i mi sie bedzie podobac powiem wam jak to zrobil, najwyzej wtedy go zywyzwacie
    Zanim mnie obrazisz uświadom sobie że jestem psycholem.

  5. #19
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    witam!
    Zapanowała cisza i spadł śnieg. Dzisiaj przypomniałem sobie o tym temacie i postanowiłem wieczorem podjąć się tego zadania...
    Jest jeden problem: cross-origin/domain (CURL).
    Stworzyłem prostą stronę - w React i tak nie miałoby to znaczenia. Napisałem skrypt, który wysyła request do Tibiantisa aby w odpowiedzi otrzymać content HTML na którym będziemy sobie pracować. Niestety tutaj jest problem: nie da się z przeglądarki wysłać HTTP request do serwera, który blokuje CORS. Są strony do których można wysłać request i otrzymywałem od nich content HTML ale tu jest inaczej.
    W jednym z moich poprzednich postów, zasugerowałem żeby postawić jakieś Rest API i robić jakieś cuda i po części miałem rację. Trzeba postawić serwer, np. w express js i z niego wysłać request do strony internetowej na której chcemy zrobić web scraping.
    Można też inaczej. Istnieją tzw. serwisy proxy do których wysyłamy request z URL naszej docelowej strony ale te serwisy są płatne bądź oferują ograniczoną ilość zapytań (100-1000... różnie).


    Ok, taki pojawia się błąd:



    Spróbuję uruchomić serwer w express js i wysłać żądanie z niego. Zobaczymy czy uda się. Jeszcze jest kwestia czy ogarnę parsera (JSSoup) aby przetworzyć tą całą tabelę z graczami online.
    Wiadomo można w excelu zrobić ten projekt - jak ktoś wyżej wspomniał, ale zdaję mi się, że w ramach nauki warto spróbować rozwiązać te zadanie na płaszczyźnie front-endu xD


    ps. tutaj jest link do fajnego artykułu o tym: https://dev.to/johnpaulada/how-we-fa...-scraping-1881
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

  6. #20
    Avatar Lord
    Data rejestracji
    2012
    Położenie
    Uśmiechnięta Polska B
    Wiek
    29
    Posty
    10,345
    Siła reputacji
    18

    Domyślny

    Pan sie zabierasz do tego od dupy strony

  7. #21
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    ale, że co, że jestem rudy?
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

  8. #22
    Avatar Lord
    Data rejestracji
    2012
    Położenie
    Uśmiechnięta Polska B
    Wiek
    29
    Posty
    10,345
    Siła reputacji
    18

    Domyślny

    Cytuj Black Keeper napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    ale, że co, że jestem rudy?
    Dlaczego przeglądarka ma pobrać html z tibiantis.online? Jak ktoś bedzie zalogowany to by pan mógł pobrać dane typu mail, przeparsować htmla i wysłać request zmiany hasła. Po to jest CORS żeby tak nie robić.
    Proponuje użyć czegoś serverside, nodejs, pytonga czy pehape zamiast 20 bibliotek, zeby pobrać tą tabelke. Uwaga, teraz zamieniamy tabelke w array robiąc coś w stylu explode(removetags(tabelka),"\n"), co uszczupli ilość bibliotek.

  9. #23
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    Użyłem express.js

    edit: dobra spróbuję zrobić żeby było tylko serverside

    I generuję taką zawartość:
    Ostatnio zmieniony przez Black Keeper : 27-11-2021, 11:02
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

  10. #24
    Avatar Lord
    Data rejestracji
    2012
    Położenie
    Uśmiechnięta Polska B
    Wiek
    29
    Posty
    10,345
    Siła reputacji
    18

    Domyślny

    wyciagnij sobie tera getElementByClassName('tabi')[0].textContent i jestes w domu

  11. #25
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    Zrobiłem inaczej, nie wiem czemu ale getElement wypluwa mi błąd w konsoli... potem to sprawdzę.

    Kod:
    const result = htmlContent.includes("Angel of Distans");
        if(result) {
          console.log("Player is online.");
        }
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

  12. #26
    Avatar daniello1337
    Data rejestracji
    2013
    Położenie
    Poznań
    Posty
    248
    Siła reputacji
    11

    Domyślny

    Cytuj Black Keeper napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Kod:
    const result = htmlContent.includes("Angel of Distans");
        if(result) {
          console.log("Player is online.");
        }
    Nie getElement to nie, wez se jakiegos parserka np. cheerio, se przemapuj po calych rzedach tabeli i zrob z tego ladna tablice sexowna z nickami/lvlem. Jak bedziesz renderowal w reactcie te grupy, to kazdy component userka se sprawdzi onlineList.includes(userek.name) ? 'ale online ten userek jest jak nic' : 'chyba retired rip tibiantis' i gotowe essa

  13. #27
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    @Lord
    Zastanawiam się gdzie przechowywać nicki znajomych graczy z Tibiantisa. Sesja i localstorage?

    edit: ale już wiem mniej więcej o co chodzi, kiedyś we Flasku coś pisałem... muszę również zrobić przynajmniej jedną statyczna stronę .html i użyć jakiś template engine
    Ostatnio zmieniony przez Black Keeper : 28-11-2021, 23:48
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

  14. #28

    Ekspert: Sprzęt i oprogramowanie
    Mistrzu dragon jest teraz offline
    Avatar Mistrzu dragon
    Data rejestracji
    2006
    Położenie
    20 cm od klawiatury
    Posty
    1,857
    Siła reputacji
    19

    Domyślny

    tak dzisaj wyglada programowanie ze do byle gowna 15 bibiotek laduja, a potem wczytujesz na kazdej stronie ten bloatware chuj wie po co

    w antycznym php tyle to zajmuje, a napewno da sie prosciej
    Kod:
    $html = file_get_contents("https://tibiantis.online/?page=WhoIsOnline");
    
    $first_step = explode( '<table width="100%" class="tabi">' , $html );
    $second_step = explode("</table>" , $first_step[1] );
    
    $dom = new DOMDocument();
    @$dom->loadHTML($second_step[0]);
    $xpath = new DOMXPath($dom);
    
    foreach($xpath->query('//td[1]') as $td){
      echo $td->nodeValue; //nicki osob online
      echo "<br>";
    }
    Powyższy post może być sarkastyczny oraz zawierać śladowe ilości orzechów arachidowych.

  15. #29
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    Ja zrobiłem to tak:

    Kod:
    const retrieveData = async () => {
      const response = await axios.get(PLAYERS_ONLINE_URL);
      return response.data;
    };
    
    app.get("/players-online-table", async (req, res) => {
      const response = await retrieveData();
    
      const dom = new JSDOM(response);
      const playersTable = dom.window.document.querySelector(".tabi");
      const playersTableDetails = playersTable.querySelectorAll("td");
    
      const playersOnlineArray = [];
    
      for (let i = 3; i < playersTableDetails.length; i += 3) {
        playersOnlineArray.push({
          name: playersTableDetails[i].textContent,
          vocation: playersTableDetails[i + 1].textContent,
          level: playersTableDetails[i + 2].textContent,
        });
      }
    
      console.log(playersOnlineArray);
      res.send(playersOnlineArray);
    });
    Wartość i w pętli ustawiłem na 3, ponieważ pierwsze trzy komórki mają wartości opisowe. Pętla musi iterować co n kroków. W tym przypadku co trzy kroki żeby odpowiednio zapełnić tablicę graczy.

    Można jeszcze sprawdzić ile ogołem graczy jest online na Tibiantisie, chociaż nie będzie to potrzebne, kiedy projekt jest listą kontaktów.

    Kod:
    console.log(playersOnlineArray.length);


    Lista znajomych będzie zapisywana w ciasteczkach.
    Ostatnio zmieniony przez Black Keeper : 05-12-2021, 14:40
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

  16. #30
    Avatar Black Keeper
    Data rejestracji
    2005
    Posty
    483
    Siła reputacji
    19

    Domyślny

    edit: tibiantis-contact-list.herokuapp.com

    Co się dało to zrobiłem, teraz myślę gdzie to wrzucić za free. Pewnie autor tematu już dawno zapomniał... ale zabawa i nauka była fajna. Jeszcze można stworzyć funkcję grupowania jak będzie czas.

    https://github.com/KrwawyOrk/tibiant...ob/main/app.js
    github: https://github.com/KrwawyOrk/tibiantis-contact-list
    Ostatnio zmieniony przez Black Keeper : 07-12-2021, 13:02
    Ludzie spotykają się jedynie po to, żeby zobaczyć, jak bardzo różnią się od siebie. Z tymi, którzy różnią się od nich najbardziej, zostają na dłużej. Jakby życie chciało pokazać im wszystko, co nie jest nimi. - Olga Tokarczuk

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. jak ja sie matce na oczy mam pokazać tera
    Przez pies szamana w dziale O wszystkim i o niczym
    Odpowiedzi: 18
    Ostatni post: 09-09-2022, 16:38
  2. Problem z otwarzaniem filmikow na necie
    Przez Master of the Xantera w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 2
    Ostatni post: 03-08-2014, 20:46
  3. Mój nowy blog muzyczny chcę pokazać
    Przez Err0rdin w dziale Muzyka
    Odpowiedzi: 8
    Ostatni post: 01-01-2013, 19:02
  4. Gdzie leci KSW na necie?
    Przez kck w dziale Filmy, seriale i telewizja
    Odpowiedzi: 3
    Ostatni post: 26-11-2011, 19:46

Tagi tego tematu

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •