ãæãRubyでクローラー/Webスクレイピングの本ãæ¸ãã¾ãããä»ã§ãã¡ããã¡ããã¨ã¹ã¯ã¬ã¤ãã³ã°ã®ã³ã¼ããæ¸ãããã¯ããã®ã§ãããå®è¡åºç¤ã«ã¤ãã¦ã¯ãµã¼ãã®éç¨ç®¡çãé¢åãããã®ã§AWS Lambdaã使ããã¨ãå¤ãã§ãããããªãã¨ãLambdaã¯åºæ¬çã«ã¯Rubyã使ããªãã®ã§ãè¨èªã¯PythonãNode.jsãå©ç¨ãããã¨ã«ãªãã¾ããPythonããããã©ãä»å¾ã®ãã¨ãèããã¨Node.jsåãé«ãã¦ããããã¨èãã¦ãã¾ããã¨ãããã¨ã§ãNode.jsç¸ãã§ã¹ã¯ã¬ã¤ãã³ã°ã®ä»æ¹ã§ãã
ã¹ã¯ã¬ã¤ãã³ã°å¯¾è±¡ã®ãã¼ã¸ã®ç¨®é¡
ãç§ã®ä¸ã®åæãªå®ç¾©ã§ãããã¹ã¯ã¬ã¤ãã³ã°ã«ã¯3種é¡ããã¾ãã
1. éçãµã¤ãï¼JavaScriptä¸è¦ãªãã¼ã¸ã«é¢ããã¹ã¯ã¬ã¤ãã³ã°
2. 対話åãµã¤ãï¼JavaScriptä¸è¦ãªãã¼ã¸ã«é¢ããã¹ã¯ã¬ã¤ãã³ã°
3. JavaScriptåæã®ãã¼ã¸ã«é¢ããã¹ã¯ã¬ã¤ãã³ã°
ä¸ã«è¡ãã»ã©ãã¹ã¯ã¬ã¤ãã³ã°ãã¥ãããªãã¾ãã
éçãµã¤ãï¼JavaScriptä¸è¦ãªãã¼ã¸ã«é¢ããã¹ã¯ã¬ã¤ãã³ã°
ããããä¸çªç°¡åã§ããHTMLãåå¾ãã¦ããã®HTMLã®ä¸ã®ç¹å®ã®ãã¼ã¿ãæ½åºããã ãã§ããå©ç¨ããã©ã¤ãã©ãªã¨ãã¦ã¯ãcheerio-httpcliããããè¯ãã§ãã
対話åãµã¤ãï¼JavaScriptä¸è¦ãªãã¼ã¸ã«é¢ããã¹ã¯ã¬ã¤ãã³ã°
ã対話åãµã¤ãã¨ã¯ãå ¥åãã©ã¼ã ããã§ãã¯ããã¯ã¹ãå©ç¨ãã¦ã¦ã¼ã¶ãå ¥åå¾ã«ãµãããããã¦é·ç§»ãããµã¤ãã§ããå©ç¨ãããããã³ã«ã¨ãã¦ã¯ãgetã§ã¯ãªãpostã®ã¤ã¡ã¼ã¸ã§ããåç´ã«æ¤ç´¢æ¡ä»¶ãæå®ããã ãã§ããã°ãpostã§ãã£ã¦ããã©ã¡ã¼ã¿ãèªåã§ä»å ãã¦éãã°ããã®ã§ãããèªè¨¼çã絡ããã¨ãå¤ãã§ãããã®éã¯ãã©ã¤ãã©ãªå´ãCookieçã«å¯¾å¿ãã¦ã»ãã·ã§ã³ãç¶æããå¿ è¦ãããã¾ããé¢åãããã®ã©ã³ã¯ã1ã¤ããããã¨ã«ãªãã¾ãã
ããããã£ãå ´åã«å©ç¨ããã©ã¤ãã©ãªã¨ãã¦ã¯ãMechanizeãå®çªã«ãªãã¾ããNode.jsã¨ãããJavaScriptçã¨ãã¦mechanize-jsãããã¾ããã¾ããå ã«ç´¹ä»ããcheerio-cliã0.3.0以éã¯åæ§ã®æ©è½ã使ããããã«ãªã£ã¦ãã¾ããé¸æã®æ©ã¿ã©ããã§ããã
JavaScriptåæã®ãã¼ã¸ã«é¢ããã¹ã¯ã¬ã¤ãã³ã°
ãJavaScriptåæã®ãã¼ã¸ã¨ã¯ããµã¼ããµã¤ãã§ç»é¢ãçæããã®ã§ã¯ãªããã¯ã©ã¤ã¢ã³ããµã¤ãããåè¦ç´ ãå¼ã³åºãã¦åçã«ãã¼ã¸ãçæããã¿ã¤ãã§ããå¾æ¥ãç»åãCSSãã¯ã©ã¤ã¢ã³ãããå¼ã³åºãã¦ã¨ããã¨ããã¯ãã£ãã®ã§ãããæè¿ã¯è¡¨ç¤ºãããã¼ã¿çãã¯ã©ã¤ã¢ã³ãããéåæã§å¼ã³åºãã¦ã¨ãããã¿ã¼ã³ãå¢ãã¦ãã¦ãã¾ããã¹ã¯ã¬ã¤ãã³ã°ã¨ãã観ç¹ã§ã¯ã大å¤ãªå ´åãå¤ãã§ãã
ã対å¦æ³ã¨ãã¦ã¯ãJavaScriptã解æãã¦ãã¼ã¿é¨åãç´æ¥å¼ã£å¼µãæ¹æ³ã¨ãã¹ã¯ã¬ã¤ãã³ã°å´ã«ãã©ã¦ã¶ç¸å½ã®ãã®ãç¨æãã¦ç»é¢ã®çæãããæ¹æ³ãããã¾ããåè ã¯èªè¨¼èªå¯å«ãã¦å¤§å¤ãªå ´åãå¤ããå¾è ã¯ãã©ã¦ã¶ãå©ç¨ããã®ã§é常ã®ã¹ã¯ã¬ã¤ãã³ã°ããå¤ãã®ãªã½ã¼ã¹ãå¿ è¦ã¨ãã¾ããSelenium+Firefoxã§å®ç¾ããå ´åãããã®ã§ãããåºæ¥ãã ã軽éã«å®è¡ã§ããããã«ãããã¬ã¹ãã©ã¦ã¶ã¨å¼ã°ããCLIãã¼ã¹ã®ãã®ãå©ç¨ãããã¨ãå¤ãã§ããä»£è¡¨æ ¼ã¨ãã¦ã¯ãWebKit ãã¼ã¹ã§ä½ãããPhantomJSãããã¾ããNode.js+Lambdaãã使ãéã¯ãphantom-lambda-templateã¨ããã¢ã¸ã¥ã¼ã«ãããã¾ããããã«ã¤ãã¦ã¯ãåãæ¹ãã¦è§£èª¬ãã¾ããã¾ãPhantomJS以å¤ã§ã¯ãXvfbãå©ç¨ãã¦ChromeãFirefoxãªã©ã®å®ãã©ã¦ã¶ãCLIã§ä½¿ãã¨ããæ¹æ³ãããã¾ãã
ã¾ã¨ã
ãã¹ã¯ã¬ã¤ãã³ã°ã®åé¡ããã ãã§ãçµæ§ãªåéã¨ãªãã¾ããã次å以éãããããã®æ¹æ³ãé ã«è§£èª¬ãã¦ã¿ããã¨æãã¾ããã¤ã¥ãã¯ããã¡ãã
AWS Lambdaでcheerio-httpcliを実行する

JS+Node.jsã«ããWebã¯ãã¼ã©ã¼/ãããã¨ã¼ã¸ã§ã³ãéçºãã¯ããã¯
- ä½è : ã¯ã¸ã©é£è¡æº
- åºç社/ã¡ã¼ã«ã¼: ã½ã·ã
- çºå£²æ¥: 2015/08/31
- ã¡ãã£ã¢: åè¡æ¬
- ãã®ååãå«ãããã° (2件) ãè¦ã

Rubyã«ããã¯ãã¼ã©ã¼éçºææ³ãå·¡åã»è§£ææ©è½ã®å®è£ ã¨21ã®éç¨ä¾
- ä½è : ãã³ãã¡
- åºç社/ã¡ã¼ã«ã¼: SBã¯ãªã¨ã¤ãã£ã
- çºå£²æ¥: 2015/03/02
- ã¡ãã£ã¢: Kindleç
- ãã®ååãå«ãããã° (1件) ãè¦ã

- ä½è : NRIãããã³ã æ ªå¼ä¼ç¤¾,ä½ã æ¨æé,ä½è¤ç¬,ç³å·ä¿®,é«æ³æ士,ä½è¤éä¹,岸æ¬åè²´
- åºç社/ã¡ã¼ã«ã¼: SBã¯ãªã¨ã¤ãã£ã
- çºå£²æ¥: 2016/04/20
- ã¡ãã£ã¢: åè¡æ¬
- ãã®ååãå«ãããã°ãè¦ã
ã·ãªã¼ãºç®æ¬¡ï¼
Node.jsでスクレイピングするならば
AWS Lambdaでcheerio-httpcliを実行する
See Also:
『Rubyによるクローラー開発技法』を書きました
アプリケーションエンジニア向けのAWS本を書きました
『Amazon Web Services パターン別構築・運用ガイド』を書きました