Tento web používá soubory cookie. Dalším používáním webu s tímto souhlasíte.
jméno
heslo
přihlásit
zaregistrujte se
zapomněli jste heslo?
node.js - Evented I/O for V8 JavaScript
ANGEL333
Relativně nové server-side javascriptové API. Hlavní předností je, že je event-driven a neblokující. Již nyní obsahuje implementaci protokolů HTTP, TCP, DNS, rozhraní pro práci s procesy, soubory, atd..

Instalace je velmi jednoduchá, jediná závislost je Python, potom node.js nainstalujete jako standardní program.

Odkazy:


  • Oficiální web: http://nodejs.org

  • Přednáška od Ryana Dahla (autor node.js)

  • Git repozitář: http://github.com/ry/node
  • Máte k tomu co říct? Vložte se do diskuze.
    ??? --- 13:10:22 20.2.2018
    SUCZKER:
    No nejsem v tom expert, tak at se tu pak o to nekdo neopira jako o bernou minci...

    1/ zvedl jsem timeout... (cas neni mym nepritelem)

    2/ cele to obalil do try catch
     try {
    	await page.goto('https://.../?profile_name=' + nick + '&type[]=' + type +'&submit=Filter', {waitUntil: 'load'});
    	await page.waitForSelector('textarea:not(#support_body)');
    	const txt = await page.$eval('textarea:not(#support_body)', el => el.value);
    	...
    } catch (e) { ... } 


    Obcas to neprojde, ale cele to nespadne a nacte se to proste jindy...
    SUCZKER --- 10:28:43 20.2.2018
    ???: Da se vysvetlit, cos udelal jinak, kdyby se to treba nekdy nekomu hodilo ??
    ??? --- 22:16:55 19.2.2018
    SUCZKER:
    No uz to mam "nejak" odladene. Zase to asi nestoji za to, aby se tim nekdo vice zabyval a i ta chyba je jen nekdy... Kdyby to blblo, tak si s tim jeste pohraju jak jsi psal...

    Diky!
    SUCZKER --- 18:43:57 19.2.2018
    ???: Bylo by lepsi, kdybys napsal, co delas. Proste document.ready nebo ekvivalent ke vzdycky lepsi. Je stranka staticka, nebo je v ni JS, co ji na klidntovi vyrendruje? Tohle vse muze hrát roli? Kdyztak hod Vic info do posty, jestli to neni top secret project.

    Zkusit stranku po loadu ulozit a podivat se, jestli tam skutecne je Dom structural, ktera odpovedi tomu selectoru, neni od veci.

    Proc proste nevyzlousis jiny timeout eventy z toho page.goto a uvidis? A pak napis, pokud to nebudete fungovat.

    Ja nevim, co chces scrapovat, se pak tezko ladi, když neco nefacha.
    ??? --- 17:53:29 19.2.2018
    SUCZKER:
    Jsi dost tajemný...

    Jaká je tedy nejlepší praxe na úpravu toho řádku, když waitUntil: 'load' není to pravé...:
    await page.goto('https://example.com/Tools/?name=' + nick + '&loop=' + loop + '&submit=Filter', {waitUntil: 'load'});

    Patří do parametru něco jiného?
    SUCZKER --- 17:30:37 19.2.2018
    koukam, ze to "page.goto" ma jeste varianty "domcontentloaded" a "networkidle0", atd.. mozna zkus neco z nich.
    SUCZKER --- 17:28:17 19.2.2018
    ???: To si zrejme load mysli. Nevim, co se snazis scrapovat, ale udalost "document.load" neni to samy, co udalost "document.ready", jen tak na okraj. Bylo by asi vhodny si dokument pote, co skonci load, nekam ulozit, aby bylo jisty, ze tam skutecne je to, co hledas.
    ??? --- 17:24:44 19.2.2018
    SUCZKER:
    Dik... ale proc tam je teda toto:
    {waitUntil: 'load'}

    Myslel jsem ze to resi ten load. Pokud by load dobehl, tak tam třen prvek urcite je. Leda ze by dobehl ale vratil prazdnou stranku (bila streanka) a load by se myslel ze tedy hotovo...
    SUCZKER --- 17:21:45 19.2.2018
    ???: process.on('unhandledRejection', (err) => { ... }) asi znas, to pisu jenom tak do foroty. Celou porceduru mas urcite oznaceno jako async, takze to problem nebude.

    Co ctu dokumentaci k waitforselector, tak pokud se proste neobjevi markup, kterej by odpovidal selectoru behem danyho timeout (defaultne asi tech 30000ms, ale nastavitelne pomci druhyho parameteru options), tak to proste throwne. Rekl bych, ze proste na strance se behem tech 30 sekund ten selektor neobjevi nebo tam proste nikdy nebyl.

    Je to prijatelne vysvetleni ?
    ??? --- 14:29:21 13.2.2018
    Jinak ten chrome na linuxu oproti phantomu+casperu na widlich je 2x pomalejsi... (3 vs 7 minut).
    Nevim na kolik je to srovnatelne, protoze to muze byt klidne i vykonem.
    Win 10, 4 jadra i, 12GB RAM
    vs
    Debian jessie (VPS), 2 jadra, 1GB RAM (RAm je dost), procak obcas na 100%