開発合宿#1 @ 日光はじめのいっぽ Node.js でスクレイピングバッチ+Webアプリを作った
։ൃ߹॓#1͡Ίͷ͍ͬΆ 2014.08.08@kentana20
View Slide
AgendaϨΪϡϨʔγϣϯʢ֬ೝʣ࠾༻ٕͨ͠ज़ࠓճͷ࡞ίϯηϓτ࡞ͬͨͷBatchWebNode.jsॴײ·ͱΊ
ϨΪϡϨʔγϣϯ͋·Γ৮͍ͬͯͳ͍ݴޠɾϑϨʔϜϫʔΫΛ৮ΔࣾͷҰ෦αʔϏεΛఆͨ͠ҎԼͷॲཧϓϩάϥϜΛ࡞ΔBatch:εΫϨΠϐϯάॲཧʴDBొWeb:Batchॲཧͯ͠औಘͨ͠σʔλͷදࣔ
࠾༻ٕͨ͠ज़Node.jsBatch/WebͱʹNode.jsNode.jsnpmύοέʔδ͕๛ͰεΫϨΠϐϯάɺόονॲཧʢcronʣɺDBΫϥΠΞϯτɺWebϑϨʔϜϫʔΫͱଟ࠼ͳϥΠϒϥϦ܈͕ັྗRedisΠϯϝϞϦܕNoSQL
ࠓճͷ࡞ίϯηϓτʮඒঁʯΛࡐʹͨ͠ΞϓϦ1ധ2Ͱ࣌ؒͷ࡞ۀ͕༧͞ΕͨͷͰɺπϥ͘ͳ͍ࡐΛબਖ਼ৗʹऔಘɾදࣔ͞Εͨͱ͖ʹ༊͞ΕΔʮඒঁྐྵʯ͔Βඒঁը૾ͱϓϩϑΟʔϧΛεΫϨΠϐϯάͰऔಘ
࡞ͬͨͷBatch`cheerio-httpcli` ͱ͍͏npmΛ࠾༻ʢΤϯδχΞblog࠷ߴʣσʔλͷอଘRedisΛ࠾༻ʢطʹOS Xʹೖ͔ͬͯͨΒʣjQueryϥΠΫʹεΫϨΠϐϯάॲཧ͕ॻ͚Δ͙͢ΕͷCasperJSΛ͍͔͕ͨͬͨɺNode.jsͰಈ࡞ͤ͞ΔͷʹSpookyJS͕ඞཁͱ͍͏͜ͱΛࣦ೦͍ͯͯ͠λΠϜϩε
࡞ͬͨͷWeb`Express` ͱ͍͏WebϑϨʔϜϫʔΫΛ࠾༻ΠϚυΩͷWebϑϨʔϜϫʔΫͰɺejsͱ͍͏RailsͰ͍͏ͱ͜ΖͷerbతͳwebςϯϓϨʔτ͕͑ͯεοͱೖΕ͕ͨ࣌ؒͳͯ͘ϓϨʔϯա͗ΔUIʹͳͬͨ
Γ͔ͨͬͨ͜ͱɾ৺ΓQ (ඇಉظΓ͜ͳͤͳ͔ͬͨʣඒঁͷϓϩϑΟʔϧΛͬͱऔಘ͔ͨͬͨ͠ʢliཁૉ͕ՄมͰid/class྆ํͳͯ͘”൴ࢯͷ༗ແ”͕औΕͳ͔ͬͨ͜ͱ͕৺ΓʣWebϖʔδΛඒঁʹ;͞Θ͘͠ɺͬͱ՚͔ͳUIʹ͔ͨͬͨ͠ʢBatchͷ࣮ʹֻ͚࣌ؒ͗ͯ͢ɺWebͷ࣮ʹ2࣌ؒ͘Β͍͔͠ͱΕͳ͔ͬͨɻ࣌ؒॏཁʣSpookyJSͰσʔλεΫϨΠϐϯά͢Δͷָͦ͠͏ͳͷͰɺͦͬͪʹτϥΠͯ͠Έ͍ͨ
Node.jsॴײJavascriptϥΫʢ͚ͲͬͺΓه๏͖͡Όͳ͍ʣJavascriptͰͯ݁͢Ͱ͖ΔͷͰɺڥߏஙؚΊͯಋೖίετɾֶशίετ͍npm͕๛ͳͷͰɺΠϚυΩͷWebΞϓϦͰ͍ͬͯΔ͜ͱ͍͍ͩͨΧόʔͰ͖ΔγϯάϧεϨουɾඇಉظΛΓ͜ͳ͢༰ͳਫ਼ਆ͕ඞཁझຯͷΞϓϦͳΒશવީิʹೖͬͯ͘Δ͕B2C͚ͷ͋ΔఔͷτϥϑΟοΫ͕༧͞ΕΔαʔϏεӡ༻ະ
։ൃ߹॓ॴײूதͯ͠ɺීஈͷੜ׆͔ΒΕͯ։ൃʹ͖߹͏࣌ؒ࠷ߴࠓճ͓ࢼ͠ʴ৽ݴޠͷτϥΠͩͬͨͷͰ1ധ2Ͱྑ͔͕ͬͨɺࣄͰ࣮ࡍʹ։ൃ߹॓͢ΔͳΒ2~3ധ͘Β͍ͯ͠ɺΨοπϦ։ൃ͢Εɺ͔ͳΓॆ࣮ͨ͠ՌΛग़ͤͦ͏ఆظతʹ։࠵͍ͨ͠ʢ2ճͱ͔ʣ
Enjoy Coding!