ããã¯ãNode.jsã䜿çšããWebã¹ã¯ã¬ã€ãã³ã°ã¹ã¯ãªããã®äœæãšäœ¿çšã«é¢ããã·ãªãŒãºã®æåã®èšäºã§ãã
- Node.jsã䜿çšããWebã¹ã¯ã¬ã€ãã³ã°
- Node.jsããã³åé¡ã®ãããµã€ãã§ã®Webã¹ã¯ã¬ã€ãã³ã°
- Node.jsã§ã®Webã¹ã¯ã¬ã€ãã³ã°ãšãããä¿è·
- Node.jsã䜿çšããæŽæ°ããŒã¿ã®Webã¹ã¯ã¬ã€ãã³ã°
ãŠã§ãã¹ã¯ã¬ã€ãã³ã°ã®ãããã¯ã¯ãå°ãªããšããããããªãŒã©ã³ãµãŒã«ãšã£ãŠã¯å°ããã䟿å©ã§è峿·±ã泚æã®ç¡å°œèµãªãœãŒã¹ã§ããããããŸããŸãé¢å¿ãéããŠããŸãã åœç¶ãããå€ãã®äººã
ããããäœã§ããããçè§£ããããšããŠããŸãã ãã ããæ¬¡ã®ã©ã€ãã©ãªã®ããã¥ã¡ã³ãããæœè±¡çãªäŸã®ãŠã§ãã¹ã¯ã©ãããçè§£ããã®ã¯ããªãå°é£ã§ãã å®éã®åé¡ã®è§£æ±ºçãæ®µéçã«èгå¯ããããšã§ããã®ãããã¯ãçè§£ããã®ãã¯ããã«ç°¡åã«ãªããŸãã
éåžžãWebã¹ã¯ã¬ã€ãã³ã°ã®ã¿ã¹ã¯ã¯æ¬¡ã®ããã«ãªããŸããWebããŒãžã§ã®ã¿äœ¿çšå¯èœãªããŒã¿ããããããããåãåºããŠäžçš®ã®æ¶åå¯èœãªåœ¢åŒã§ä¿åããå¿
èŠããããŸãã 誰ãã³ã³ããŒã¿ãŒããã£ã³ã»ã«ããŠããªããããæçµçãªãã©ãŒãããã¯éèŠã§ã¯ãããŸããã ã»ãšãã©ã®å Žåããã©ãŠã¶ãéãããªã³ã¯ãããŠã¹ã§ã¯ãªãã¯ããŠãããŒãžããå¿
èŠãªããŒã¿ãã³ããŒããŸãã ãŸãããŸãã¯ã¹ã¯ãªããã§åãããšãè¡ããŸãã
ãã®èšäºã®ç®çã¯ãã¿ã¹ã¯ã®èšå®ããæçµçµæã®ååŸãŸã§ããã®ãããªã¹ã¯ãªãããäœæããã³äœ¿çšããããã»ã¹å
šäœã瀺ãããšã§ãã äŸãšããŠãããªãŒã©ã³ã¹ã®ããåããªã©ã§ããèŠãããã¿ã¹ã¯ã®ãããªå®éã®ã¿ã¹ã¯ãæ€èšããWebã¹ã¯ã¬ã€ãã³ã°ã®ããŒã«ãšããŠNode.jsã䜿çšããŸãã
åé¡ã®å£°æ
Ferra.ruã«æçš¿ãããã¹ãŠã®èšäºãšã¡ã¢ã®ãªã¹ããååŸãããšããŸãã åºçç©ããšã«ãã¿ã€ãã«ããªã³ã¯ãæ¥ä»ãããã¹ããµã€ãºãååŸããŸãã ãã®ãµã€ãã«ã¯äŸ¿å©ãªAPIããªããããããŒãžããããŒã¿ãååŸããå¿
èŠããããŸãã
äœå¹Žãã®éãç§ã¯ãµã€ãã§å¥ã®ã»ã¯ã·ã§ã³ãçµç¹ããããšãæ°ã«ããªãã£ãã®ã§ãç§ã®åºçç©ã¯ãã¹ãŠéåžžã®ãã¥ãŒã¹ãšæ··åãããŸãã ç§ãç¥ã£ãŠããå¯äžã®æ¹æ³ã¯ãå¿
èŠãªåºçç©ã匷調ããããšã§ã-èè
ã«ãããã£ã«ã¿ãªã³ã°ã äœæè
ã¯ãã¥ãŒã¹ãªã¹ãã®ããããŒãžã«ã¯è¡šç€ºãããªãããã察å¿ããããŒãžã§ãã¹ãŠã®ãã¥ãŒã¹ã確èªããå¿
èŠããããŸãã ãã¹ãŠã®ãã¥ãŒã¹ã§ã¯ãªãã1ã€ã®ã»ã¯ã·ã§ã³ã§æ€çŽ¢ã§ããããã«ããç§åŠãšæè¡ãã»ã¯ã·ã§ã³ã§ã®ã¿èšè¿°ããããšãèŠããŠããŸãã
ããã§ã¯ãã»ãŒãã®åœ¢åŒã§ãWebã¹ã¯ã¬ã€ãã³ã°ã®ã¿ã¹ã¯ãéåžžç§ã«æ¥ãŸãã ãã®ãããªã¿ã¹ã¯ã§ãããããŸããŸãªé©ããšèœãšã穎ããããŸããããããã¯ããã«ã¯èŠããªãã®ã§ãããããèŠã€ããŠãããã»ã¹ã®äžã§æ£ãã解決ããå¿
èŠããããŸãã å§ããŸãããïŒ
ãµã€ãåæ
ãã¥ãŒã¹ããŒãžãå¿
èŠã§ããããã®ããŒãžãžã®ãªã³ã¯ã¯ããŒãžåå²ããããªã¹ãã«åéãããŸãã å¿
èŠãªãã¹ãŠã®ããŒãžã¯èš±å¯ãªã䜿çšã§ããŸãã ãã©ãŠã¶ã§ããŒãžã®ãœãŒã¹ã確èªãããšããã¹ãŠã®ããŒã¿ãHTMLã³ãŒãã«çŽæ¥å«ãŸããŠããããšã確èªã§ããŸãã ããªãåçŽãªã¿ã¹ã¯ïŒå®éããããç§ããããéžãã çç±ã§ãïŒã ãã°ã€ã³ãã»ãã·ã§ã³ã®ä¿åããã©ãŒã ã®éä¿¡ãAJAXãªã¯ãšã¹ãã®è¿œè·¡ãæ¥ç¶ãããã¹ã¯ãªããã®è§£æãªã©ãè¡ãå¿
èŠã¯ãªãããã§ãã ã¿ãŒã²ãããµã€ãã®åæã«ã¯ãã¹ã¯ãªããã®èšèšãšäœæãããæ°åæéããããå ŽåããããŸãããä»åã¯ããã§ã¯ãããŸããã å€å次ã®èšäºã§...
ãããžã§ã¯ãã®æºåãããžã§ã¯ãã®æºå
ãããžã§ã¯ããã£ã¬ã¯ããªïŒããã³ãã®äžã®ç©ºã®index.jsãã¡ã€ã«ãšæãåçŽãªpackage.jsonãã¡ã€ã«ïŒã®äœæãNode.jsãšnpmããã±ãŒãžãããŒãžã£ãŒã®ã€ã³ã¹ããŒã«ãããã³npmãä»ããã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«ãšåé€ã«ã€ããŠèª¬æããããšã¯æå³ããªããšæããŸãã
å®ç掻ã§ã¯ããããžã§ã¯ãã®éçºã«ã¯GITãªããžããªã®ã¡ã³ããã³ã¹ã䌎ããŸãããããã¯èšäºã®ãããã¯ã®ç¯å²ãè¶
ããŠãããããå®ç掻ã§ã®éèŠãªã³ãŒã倿Žããšã«åå¥ã®ã³ããããè¡ãããããšã«æ³šæããŠãã ããã
ããŒãžãååŸãã
ããŒãžã®HTMLã³ãŒãããããŒã¿ãååŸããã«ã¯ããµã€ããããã®ã³ãŒããååŸããå¿
èŠããããŸãã ããã¯ãããã©ã«ãã§Node.jsã«çµã¿èŸŒãŸããhttpã¢ãžã¥ãŒã«ã®httpã¯ã©ã€ã¢ã³ãã䜿çšããŠè¡ãããšãã§ããŸãããåçŽãªhttpãªã¯ãšã¹ãã®å Žåã http
ç°ãªãã©ãããŒã¢ãžã¥ãŒã«ã䜿çšããæ¹ã䟿å©ã§ããæã人æ°ã®ãããªã¯ãšã¹ãã¯requestã§ãã詊ããŠã¿ãŸãããã
æåã®ã¹ãããã¯ã request
ã¢ãžã¥ãŒã«ããã©ãŠã¶ãŒããæ¥ãã®ãšåãHTMLã³ãŒãããµã€ãããåä¿¡ããããšã確èªããããšã§ãã ã»ãšãã©ã®ãµã€ãã§ã¯ãããªããŸããããã©ãŠã¶ã«äœããäžãããµã€ãã«åºãããããšããããhttpã¯ã©ã€ã¢ã³ãã§ã®ã¹ã¯ãªããã¯ç°ãªããŸãã æåã«ã curlããã®GETãªã¯ãšã¹ãã§ã©ã³ãã£ã³ã°ããŒãžãæåã«ãã§ãã¯ããŸããããããæ¥ãcurlã§request
ã¹ã¯ãªããã§ç°ãªãhttpå¿çãrequest
ãµã€ãã«ééãããããããã«ã¹ã¯ãªãããå®è¡ããããšããŸããã ãããæ¬¡ã®ã³ãŒãã§ïŒ
var request = require('request'); var URL = 'http://www.ferra.ru/ru/techlife/news/'; request(URL, function (err, res, body) { if (err) throw err; console.log(body); console.log(res.statusCode); });
ã¹ã¯ãªãããå®è¡ããŸãã ãµã€ããåãã€ããŠããããåé¡ã®é¢é£ãããå Žåããšã©ãŒãçºçãããã¹ãŠãåé¡ãªãå ŽåãããŒãžã®ãœãŒã¹ããã¹ãã®é·ãã·ãŒããçŽæ¥ã¿ãŒããã«ãŠã£ã³ããŠã«è¡šç€ºããããã©ãŠã¶ãšã»ãŒåãã§ããããšã確èªã§ããŸãã ããã¯è¯ãããšãªã®ã§ãããŒãžãååŸããããã«ç¹å¥ãªCookieãhttpããããŒãèšå®ããå¿
èŠã¯ãããŸããã
ãã ããæ ãããããããã¹ãããã·ã¢èªã®ããã¹ããŸã§ã¹ã¯ããŒã«ãããšã request
ããšã³ã³ãŒãã誀ã£ãŠå®çŸ©ããŠããããšã«æ°ä»ãã§ãããã ããšãã°ããã·ã¢èªã®ãã¥ãŒã¹ãããã©ã€ã³ã¯æ¬¡ã®ããã«ãªããŸãã
4.7- iPhone 7
PC- DOOM 4 4
ãšã³ã³ãŒãã£ã³ã°ã®åé¡ã¯ãã€ã³ã¿ãŒãããã®å€æãã»ã©é »ç¹ã«ã¯çºçããŸããããããã§ãããªãé »ç¹ã«çºçããŸãïŒAPIã®ãªããµã€ãã§ã¯ãç¹ã«é »ç¹ã«çºçããŸãïŒã èŠæ±ã¢ãžã¥ãŒã«ã«ã¯encoding
ãã©ã¡ãŒã¿ãŒããããŸãããNode.jsã§åãå
¥ãããããšã³ã³ãŒãããµããŒãããŠããããããã¡ãŒãæååã«å€æã§ããŸãã ããã¯ascii
ã utf8
ã utf16le
ïŒå¥åucs2
ïŒã base64
ã binary
ããã³hex
ã windows-1251
ãå¿
èŠã§ããããšãæãåºãããŠãã ããã
ãã®åé¡ã®æãäžè¬çãªè§£æ±ºæ¹æ³ã¯ã encoding
ãnull
request
èšå®ããŠããœãŒã¹ãããã¡ãŒãbody
ã«é
眮ãã iconvãŸãã¯iconv-liteã¢ãžã¥ãŒã«ã䜿çšããŠå€æããããšã§ãã ããšãã°ã次ã®ããã«ïŒ
var request = require('request'); var iconv = require('iconv-lite'); var opt = { url: 'http://www.ferra.ru/ru/techlife/news/', encoding: null } request(opt, function (err, res, body) { if (err) throw err; console.log(iconv.decode(body, 'win1251')); console.log(res.statusCode); });
ãã®ãœãªã¥ãŒã·ã§ã³ã®æ¬ ç¹ã¯ããã¹ãŠã®åé¡ã®ãããµã€ãã§ããšã³ã³ãŒãã®ææ¡ã«æéãè²»ããå¿
èŠãããããšã§ãã ãã®ãµã€ããæåŸã§ã¯ãªãå Žåã¯ãããèªååããããœãªã¥ãŒã·ã§ã³ãèŠã€ããå¿
èŠããããŸãã ãã©ãŠã¶ããšã³ã³ãŒãã£ã³ã°ãçè§£ããŠããã°ãã¹ã¯ãªããããããçè§£ããã¯ãã§ãã å®éã®ãªã¿ã¯ã®æ¹æ³ã¯ãGitHubã§request
ã¢ãžã¥ãŒã«ãèŠã€ããŠããã®éçºè
ãiconv
ããã®ãšã³ã³ãŒãã£ã³ã°ãµããŒããå®è£
ããã®ãæ¯æŽããããšã§ãã ããŠããŸãã¯ãã©ãã¯ãžã£ãã¯ãšè¯å¥œãªãšã³ã³ãŒãã£ã³ã°ã®ãµããŒãã§ããªãã®ãã©ãŒã¯ãäœããŸãã çµéšè±å¯ãªéæ¥å»ã«ãšã£ãŠã®éã¯ã request
ã¢ãžã¥ãŒã«ã®ä»£æ¿ãæ¢ãããšã§ãã
åæ§ã®ç¶æ³ã§ãç§ã¯ããŒãã«ã¢ãžã¥ãŒã«ãèŠã€ãããšãŠãå¬ãããªãã request
䜿çšããªããªããŸããã ããã©ã«ãèšå®ã§ã¯ã needle
ã¯ãã©ãŠã¶ãšåãæ¹æ³ã§ãšã³ã³ãŒãã£ã³ã°ã決å®ããhttpå¿çã®ããã¹ããèªåçã«ãã©ã³ã¹ã³ãŒãããŸãã ãããŠãããã¯needle
request
ãããåªããŠããå¯äžã®ãã®ã§ã¯ãããŸããã
needle
åé¡ã®ããŒãžãååŸããŠã¿ãŸãããïŒ
var needle = require('needle'); var URL = 'http://www.ferra.ru/ru/techlife/news/'; needle.get(URL, function(err, res){ if (err) throw err; console.log(res.body); console.log(res.statusCode); });
ä»ã§ã¯ãã¹ãŠãçŽ æŽãããã§ãã ããªãã®è¯å¿ãã¯ãªã¢ããã«ã¯ã å¥ã®ãã¥ãŒã¹ããŒãžã§åãããšã詊ããŠãã ããã ããããã¹ãŠé 調ã§ãã
ã¯ããŒã«
次ã«ãåãã¥ãŒã¹ã®ããŒãžãååŸãããã®ãã¥ãŒã¹ã®èè
ã®ååã確èªãããããããªããå¿
èŠãªããŒã¿ãä¿åããå¿
èŠããããŸãã ãã¥ãŒã¹ããŒãžãžã®ãªã³ã¯ã®æ¢è£œãªã¹ãããªããããããŒãžåå²ããããªã¹ãã調ã¹ãããšã§ååž°çã«ååŸããŸãã æ€çŽ¢ãšã³ãžã³ã®ã¯ããŒã©ãŒã®ããã«ãããæ£ç¢ºã«ã®ã¿ã ãããã£ãŠãã¹ã¯ãªããã䜿çšããŠãªã³ã¯ãååŸããåŠçã®ããã«éä¿¡ããæçšãªããŒã¿ïŒååšããå ŽåïŒãã©ããã«ä¿åããåãåŠçã®ããã«æ°ãããªã³ã¯ïŒãã¥ãŒã¹ãŸãã¯ãªã¹ãã®æ¬¡ã®ããŒãžïŒããã¥ãŒã«å
¥ããå¿
èŠããããŸãã
æåã¯ãããã€ãã®ãã¹ã§ã¯ããŒã«ãå®è¡ããæ¹ãç°¡åã«èŠãããããããŸããã ããšãã°ãæåã«ããŒãžåå²ããããªã¹ãã®ãã¹ãŠã®ããŒãžãååž°çã«åéããæ¬¡ã«ããããããã¹ãŠã®ãã¥ãŒã¹ããŒãžãååŸããŠãããåãã¥ãŒã¹é
ç®ãåŠçããŸãã ãã®ã¢ãããŒãã¯ãåå¿è
ãã¹ã¯ã¬ã€ãã³ã°ããã»ã¹ã念é ã«çœ®ãã®ã«åœ¹ç«ã¡ãŸãããå®éã«ã¯ããã¹ãŠã®ã¿ã€ãã®èŠæ±ã«å¯Ÿããåäžã¬ãã«ã®åäžãã¥ãŒããå°ãªããšããããç°¡åãã€è¿
éã«éçºãããŸãã
ãã®ãããªãã¥ãŒãäœæããã«ã¯ãæåãªéåæã¢ãžã¥ãŒã«ã®queue
æ©èœã䜿çšã§ããŸããã async.queue
ãšäžäœäºææ§ããããã async
ã¢ãžã¥ãŒã«ã®æ®ãã®æ©èœãå«ãŸããŠããªããããã¯ããã«å°ãªãasync.queue
ã¢ãžã¥ãŒã«ã䜿çšããããšã奜ã¿ãŸãã å°ããªã¢ãžã¥ãŒã«ã¯ã¹ããŒã¹ããšããªãããïŒããã¯ãã³ã»ã³ã¹ã§ãïŒãè¯ããããŸããããç¹ã«å°é£ãªã¯ããŒã«ã«å¿
èŠãªå Žåã¯ããã«çµäºããããããã§ãã
tress
ã¯æ¬¡ã®ããã«æ©èœããŸãã
var tress = require('tress'); var needle = require('needle'); var URL = 'http://www.ferra.ru/ru/techlife/news/'; var results = [];
颿°ãæ¯åhttp-requestãå®è¡ããå®è¡äžã«ã¹ã¯ãªãããã¢ã€ãã«ç¶æ
ã«ãªãããšã«æ³šæããŠãã ããã ãã®ãããã¹ã¯ãªããã¯ããªãé·ãéæ©èœããŸãã é床ãäžããããã«tress
2çªç®ã®ãã©ã¡ãŒã¿ãŒã§tress
䞊ååŠçã§ãããªã³ã¯ã®æ°ã«æž¡ãããšãã§ããŸãã åæã«ãã¹ã¯ãªããã¯1ã€ã®ããã»ã¹ãš1ã€ã®ã¹ã¬ããã§åäœãç¶ããNode.jsã®éããããã³ã°I / Oæäœã«ãã£ãŠäžŠåæ§ã確ä¿ãããŸãã
è§£æ
ãã§ã«æã£ãŠããã³ãŒãã¯ãã¹ã¯ã¬ã€ãã³ã°ã®ããŒã¹ãšããŠäœ¿çšã§ããŸãã å®éãæãåçŽãªãããã¬ãŒã ã¯ãŒã¯ãäœæããŸãããããã¯ã次ã®é£ãããµã€ãã«åºäŒããã³ã«åŸã
ã«æ¹è¯ã§ããåçŽãªãµã€ãïŒå€§éšåïŒã®å Žåã¯ãè§£æãæ
åœããã³ãŒããç°¡åã«èšè¿°ã§ããŸãã ãã®ãã©ã°ã¡ã³ãã®æå³ã¯åžžã«åãã§ããå
¥å-HTTPå¿çã®æ¬æãããã³åºå-çµæã®é
åãšãªã³ã¯ãã¥ãŒã®è£å
ã è§£æããŒã«ã¯ãæ®ãã®ã³ãŒãã«åœ±é¿ãäžããŸããã
è§£æã®é人ã¯ãããŒãžãè§£æããæã匷åã§çšéã®åºãæ¹æ³ãæ£èŠè¡šçŸã䜿çšããããšã§ããããšãç¥ã£ãŠããŸã ã ããã«ãããéåžžã«éæšæºçã§éåžžã«ã»ãã³ãã£ãã¯ãªã¬ã€ã¢ãŠãã§ããŒãžãè§£æã§ããŸãã äžè¬çã«ãèšèªãç¥ããªããŠãããŒã¿ããµã€ãããééããªãã³ããŒã§ããå Žåã宿çã«è§£æã§ããŸãã
ãã ããã»ãšãã©ã®HTMLããŒãžã¯DOMããŒãµãŒã«ãã£ãŠç°¡åã«è§£æããããããã¯ããã«äŸ¿å©ã§èªã¿ããããªã£ãŠããŸãã ã¬ã®ã¥ã©ãŒã¯ãDOMããŒãµãŒã倱æããå Žåã«ã®ã¿äœ¿çšããŠãã ããã ç§ãã¡ã®å ŽåãDOMããŒãµãŒã¯å®ç§ã§ãã çŸåšãNode.jsã®DOMããŒãµãŒã®äžã§ã cheerioã¯èªä¿¡ãæã£ãŠãªãŒããŒã§ã-ã«ã«ãJQueryã®ãµãŒããŒããŒãžã§ã³ã§ãã
ïŒ ã¡ãªã¿ã«ãFerra.ruã¯JQueryã䜿çšããŠããŸããããã¯ã cheerio
ããã®ãããªãµã€ãã«å¯ŸåŠããããªãä¿¡é Œã§ãããµã€ã³ã§ã ïŒ
æåã¯ãããŒãžã®çš®é¡ããšã«åå¥ã®ããŒãµãŒãäœæããæ¹ã䟿å©ãªå ŽåããããŸãïŒãã®å Žåããªã¹ããšãã¥ãŒã¹ã®2ã€ããããŸãïŒã å®éãããŒãžäžã§åçš®é¡ã®ããŒã¿ãç°¡åã«æ€çŽ¢ã§ããŸãã å¿
èŠãªããŒã¿ãããŒãžã«ãªãå Žåããããã¯åã«èŠã€ãããŸããã ç°ãªãã¿ã€ãã®ããŒãžã§ç°ãªãããŒã¿ãåãã«èŠããå Žåãæ··ä¹±ãé¿ããæ¹æ³ã«ã€ããŠèããå¿
èŠããããŸãããé£ãããµã€ããèŠãããšã¯ãããŸããã ããããããŸããŸãªçš®é¡ã®ããŒã¿ãåãããŒãžã«ã©ã³ãã ã«çµåãããŠããå€ãã®ãµã€ãã«åºäŒã£ãããããã¹ãŠã®ããŒãžã«å¯ŸããŠåäžã®ããŒãµãŒãããã«äœæããããšã«æ
£ãã䟡å€ããããŸãã
ãã®ããããã¥ãŒã¹ãªã³ã¯ã®ãªã¹ãã¯ã b_rewiev
ã¯ã©ã¹ãæã€div
èŠçŽ å
ã«ãããŸãã ããã«ã¯å¿
èŠã®ãªãä»ã®ãªã³ã¯ããããŸãããæ£ãããªã³ã¯ã¯ç°¡åã«èŠåããããŸãããªããªãããã®ãããªãªã³ã¯ã®ã¿ã芪p
èŠçŽ ãæã£ãŠããããã§ãã ããŒãžããŒã·ã§ã³ã®æ¬¡ã®ããŒãžãžã®ãªã³ã¯ã¯ãã¯ã©ã¹bpr_next
æã€span
èŠçŽ å
ã«ãããåç¬ã§ååšããŸãã ãã¥ãŒã¹ããŒãžãšãªã¹ãã®æåŸã®ããŒãžã«ã¯ããã®ãããªèŠçŽ ã¯ãããŸããã pajinatorã®ãªã³ã¯ã¯çžå¯Ÿçã§ããããšãèæ
®ãã䟡å€ãããããã絶察ãªã³ã¯ã«ãªã³ã¯ããããšãå¿ããªãã§ãã ããã èè
ã®ååã¯ãã¯ã©ã¹b_infopost
æã€div
èŠçŽ ã®å¥¥æ·±ãã«é ãããŠããŸãã ãªã¹ãããŒãžã«ã¯ãã®ãããªèŠçŽ ã¯ãªããããäœæè
ãäžèŽããã°ãæããªãã¥ãŒã¹ããŒã¿ãåéã§ããŸãã
å£ãããªã³ã¯ãå¿ããªãã§ãã ããïŒãã¿ãã¬ïŒç Žæ£ããã»ã¯ã·ã§ã³ã«ã¯ããã®ãããªãªã³ã¯ã1ã€ãããŸãïŒã ãŸãã¯ãåãªã¯ãšã¹ãã®ã¬ã¹ãã³ã¹ã³ãŒãã確èªã§ããŸãããããŒãžã«ã³ãŒã200
ãªã³ã¯ãç ŽæããŠãããµã€ãããããŸãïŒããšãã404ããšæžãããŠããŠãïŒã å¥ã®ãªãã·ã§ã³ã¯ãããŒãµãŒã§æ€çŽ¢ããèŠçŽ ã«ã€ããŠããã®ãããªããŒãžã®ã³ãŒãã調ã¹ãããšã§ãã ãã®å Žåãå£ãããªã³ã¯ããŒãžã«ã¯ãã®ãããªèŠçŽ ã¯ãªããããããŒãµãŒã¯ãã®ãããªããŒãžãåã«ç¡èŠããŸãã
cheerio
ã䜿çšããŠã³ãŒãã«è§£æã远å ããŸãã
var tress = require('tress'); var needle = require('needle'); var cheerio = require('cheerio'); var resolve = require('url').resolve; var fs = require('fs'); var URL = 'http://www.ferra.ru/ru/techlife/news/'; var results = []; var q = tress(function(url, callback){ needle.get(url, function(err, res){ if (err) throw err;
åºæ¬çã«ãåé¡ã解決ããWebã¹ã¯ã¬ã€ãã³ã°çšã®ã¹ã¯ãªãããå
¥æããŸããïŒ èŠç¹ ã èŠç¹ã³ãŒã ïŒã ãã ãããã®ãããªã¹ã¯ãªããã¯ã客æ§ã«æäŸããŸããã 䞊åãªã¯ãšã¹ãã§ãããã®ã¹ã¯ãªããã¯é·æéå®è¡ãããŸããã€ãŸããå°ãªããšãå®è¡ããã»ã¹ã®è¡šç€ºã远å ããå¿
èŠããããŸãã ãŸããéä¿¡ãçæéäžæããŠããäžéçµæãä¿åããã«ã¹ã¯ãªãããã¯ã©ãã·ã¥ãããããã¯ã©ãã·ã¥ããåã«ã¹ã¯ãªããã«äžéçµæãä¿åããããã¯ã©ãã·ã¥ããã«äžæåæ¢ããããã«ããå¿
èŠããããŸãã ãŸããã¹ã¯ãªããã匷å¶çã«äžæããåãå Žæããç¶è¡ããæ©äŒãèªåã§è¿œå ããŸãã ããã¯æŠããŠéå°ã§ããããã®ãããªãã±ãŒãã®äžã®ãã§ãªãŒãã¯é¡§å®¢ãšã®é¢ä¿ã倧ãã«åŒ·åããŸãã
ãã ãã顧客ãããŒã¿ã1å廿£ããŠãçµæãå«ããã¡ã€ã«ãéä¿¡ããããã«èŠæ±ããå Žåããããè¡ãããšã¯ã§ããŸããã ãã¹ãŠããã®ããã«æ©èœããŸãïŒ10ã¹ã¬ããã§23åã1005ã®åºçç©ãš1ã€ã®å£ãããªã³ã¯ãèŠã€ãããŸããïŒã å®å
šã«æ solãªå Žåãpajinatorãååž°çã«ãã¹ããããšã¯ã§ããŸããããFerra.ruã§åããŠããæéã®ãã³ãã¬ãŒããããªã¹ãããŒãžãžã®ãªã³ã¯ãçæã§ããŸãã ãã®å Žåãã¹ã¯ãªããã¯é·ãããŸããã ããã¯æåã¯é¢åã§ããããããã®ãœãªã¥ãŒã·ã§ã³ã®éžæã¯ãWebã¹ã¯ã¬ã€ãã³ã°ã¿ã¹ã¯ã®éèŠãªéšåã§ããããŸãã
ãããã«
ååãšããŠããã®ãããªã¹ã¯ã¬ãŒããŒã®æžãæ¹ãç¥ã£ãŠããã°ãããªãŒã©ã³ã¹ã®ååŒæã§æ³šæãåããçæŽ»ããããšãã§ããŸãã ãã ããããã€ãã®åé¡ããããŸãã 第äžã«ãå€ãã®é¡§å®¢ã¯æçµããŒã¿ãæãã§ãããã圌ãèªèº«ãåé¡ãªã䜿çšã§ããã¹ã¯ãªãããæãã§ããŸãïŒãããŠã圌ãã¯éåžžã«ç¹å®ã®èŠä»¶ãæã£ãŠããŸãïŒã 第äºã«ã泚æãæ¢ã«è¡ãããäœæ¥ã®ååãæ¢ã«å®äºããŠããå Žåã«ã®ã¿çºèŠããããµã€ãã«ã¯å°é£ãããããéãšè©å€ã倱ããã粟ç¥çæŸåãè¡ãå¿
èŠããããŸãã
è¿ãå°æ¥ãããè€éãªã±ãŒã¹ïŒã»ãã·ã§ã³ãAJAXããµã€ãã§ã®äžå
·åãªã©ïŒããã³Webã¹ã¯ã¬ãŒããŒã¹ã¯ãªãããåžå Žæ§ã®ããå€èгã«ããããšã«é¢ããèšäºãèšç»ããŠããŸãã 質åãææ¡ãæè¿ããŸãã