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

Losowe pytania ze strony Zelenta (NodeJS)

VPS Starter Arubacloud
+1 głos
321 wizyt
pytanie zadane 12 maja 2018 w JavaScript przez BlvckFox Gaduła (4,240 p.)

Witam, w NodeJS chce pobrać ze strony mirosława zelenta z egzaminami do np. e12 losowe pytania.
Używam do tego requesta, kod wygląda tak:

 

const request = require('request');

request.post({
        url: 'http://egzamin-informatyk.pl/src/loadquestion1.php',
        json: true
      }, function(error, response, body){
     if(error){
        console.log("Error: " + error);
     }else{

        console.log(body);
        
     }

Niestety w odpowiedzi dostaje tylko HTML'a z informacją "Twoja sesja wygasła! Konieczne jest odświeżenie witryny w przeglądarce!".
Próbowałem przesłać w nagłówku Cookies z PHPSESSION, ale też nie działało - lub źle to zrobiłem. Wyglądało to mniej więcej tak:
 

request.post({
        url: 'http://egzamin-informatyk.pl/src/loadquestion1.php',
        json: true,
        headers: {Cookie: 'PHPSESSION = xxx'}
      }, function(error, response, body){
     if(error){
        console.log("Error: " + error);
     }else{

        console.log(body);
        
     }

Co powinienem zrobić, żeby uzyskać prawidłowe dane (losowe pytanie i 4 możliwe odopowiedzi + jeżeli jest to możliwe dowiedzieć się która z nich jest poprawna)? 
Na stronie Zelenta nie ma żadnego API, które umożliwiłoby łatwo stworzenie takiego skryptu.

2 odpowiedzi

+2 głosów
odpowiedź 12 maja 2018 przez Comandeer Guru (599,730 p.)
Żeby zdobyć sesję musisz przechwycić ciasteczka. które dostaniesz po wejściu na stronę. Nie da się spreparować tych ciastek ręcznie.
komentarz 12 maja 2018 przez BlvckFox Gaduła (4,240 p.)
W nodeJS można jakoś zasymulować wchodzenie jako przeglądarka - w sensie aby móc przechwycić ciasteczka i ich użyć?
1
komentarz 12 maja 2018 przez Comandeer Guru (599,730 p.)
Nie wiem jak w Request, ale w Node.js można wykorzystać np. Puppeteer.
komentarz 12 maja 2018 przez BlvckFox Gaduła (4,240 p.)
Puppeteer działa ale jako-tako, jest strasznie wolny. Można w nim jakoś wyłączyć pobieranie innych wartości ze strony? Np. obrazków, javascriptu ? Nie widziałem tego w dokumentacji, lub po prostu nie potrafie tego znaleźć.
+1 głos
odpowiedź 12 maja 2018 przez ProgramistaStepek Nałogowiec (27,020 p.)
Napisz do samego autora z takowym pytaniem. Jedyne co możesz zrobić to pobierać części strony za pomocą WebScraping'u, natomiast to nie daje Ci informacji o porawnej odpowiedzi.
komentarz 12 maja 2018 przez BlvckFox Gaduła (4,240 p.)
Ok, nawet jeżeli nie dostane się do poprawnej odpowiedzi - chciałbym przy samym WebScrapingu dostać dane w postaci pytania i możliwych odpowiedzi. Przy pobraniu całej strony w miejscu gdzie powinno być pytanie jest pustka (tak jakby kod PHP się tam nie wykonał ( może faktycznie się nie wykonuje, nie wiem dokładnie jak działa ten request ))

Podobne pytania

–1 głos
2 odpowiedzi 940 wizyt
pytanie zadane 24 kwietnia 2016 w Offtop przez Macheroni Użytkownik (970 p.)
0 głosów
1 odpowiedź 212 wizyt
0 głosów
0 odpowiedzi 389 wizyt

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...