Chromeの起動コメントをどうぞTweetChrome59からheadlessで起動できると話題なので試しました。Google公式に詳しく記載されています。cliで起動とかはうまくいったのですが、LighthouseのChromeLauncherを使おうとするとエラーが発生しました。(bootstrap_node.js:146:9)Lighthouseが2.0から変わったようです。上記のエラーではないのですが、似たようなIssueがありました。内容を抜粋すると下記のようにすると起動できます。{});requireするファイル、起動用の関数やオプションの指定の仕方も変わったようです。サンプルのGitHubです。macchan-devnode.jsでMySQLを使うコメントをどうぞTweetnode.jsでMySQLを使う場合、ググるといっぱい出てきます。クラスメソッドのブログQiitaの記事npmにMySQLのライブラリがありますので、それを使用します。MySQLのnpmREADMEによると下記のように使用します。mysql接続情報とクエリーの実行createConnection関数でMySQLのホスト名、ユーザー名、パスワードなどを定義し、query関数でSQLを実行、コールバック関数で結果を受け取ります。実際には、接続情報は1箇所に記述したいですし、コネクションプールも使いたいかなと。下記サイトが参考になりました。Express一部抜粋します。state.pool}本番用、テスト用のモードを指定し、使用するデータベースを分けています。createPool関数でコネクションプールを使うようになっています。CasperJSでスクレイピングしましたが、node.jsからは使用できなかったので、node.jsから使用できるSpookyJSでスクレピングしてみました。SpookyJS公式SpookyJSはnode.jsからCasperJSを起動するようにしたライブラリです。casperjsコマンドを内部で実行しているようです。簡単なサンプルを作りました。SpookyJSのインストールCasperJS、PhantomJSのインストールも必要です。SpookyJS自体はnpmでインストールできます。spookySpookyJSでスクレイピングする処理を書くgoogleで”スクレイピング”を検索し、結果を表示します。終了spooky.destroy();});spooky.then内で定義している関数がPhantomJS内で実行されるJavaScriptになります。‘load’イベントを作成し、その引数にCSSセレクタで指定した要素からhref属性を取得し、そのhrefを返します。spooky.on(‘load’・・・で定義したところでイベントを受信します。この動作自体はCasperJSと同じですが、SpookyJSなら受け取った値をmysqlのライブラリを使ってDBへ登録など、node.jsのライブラリをも使うことができます。CasperJSのwaitTimeoutやstepTimeoutも指定することができるので、Ajaxのページでも値が取ることができます。macchan-devスクレイピング-CasperJS編-コメントをどうぞTweet目的CasperJSを使ってスクレイピングしてみます。CasperJS公式CasperJSは、PhantomJSを使いやすくラッピングしたJavaScriptです。最初は、node.jsのライブラリと思ってましたが、使ってみたらそうではなく、casperjsというコマンドで実行します。そのためnode.jsの他のライブラリを使うことはできませんでした。CasperJS、PhantomJSのインストール最初はPhantomJSからインストールします。PhantomJSのダウンロードページ各OS毎にバイナリが用意されています。X版をダウンロードし、zipを展開します。展開するとバイナリが出てきますので、適当にパスが通ったところに置きます。/usr/local/次にCasperJSをインストールします。npmで簡単にインストールできます。そのページに対して行いたい処理を記述する。今回は検索結果のdiv(id=ires)下のタイトル(class=r)のaタグを取得する。そのページに対して行いたい処理を記述する。今回は検索結果のdiv(id=ires)下のタイトル(class=r)のaタグを取得する。実行casper.run();CasperJSの実行casperjsコマンドで実行します。casperjs_sample.js下記のようにログ出力されました。/url?q=https://ja.wikipedia.org/wiki/%25E3%2582%25A6%25E3%2582%25A7%25E3%2583%2596%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25A4%25E3%2583%2594%25E3%2583%25B3%25E3%2582%25B0&sa=U&ved=0ahUKEwjH7s223I3SAhUMbbwKHWkWAroQFggYMAE&usg=AFQjCNHZAORThLyskf3nDxY9SlIMZY3Mvg/url?q=https://ja.wikipedia.org/wiki/%25E3%2582%25A6%25E3%2582%25A7%25E3%2583%2596%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25A4%25E3%2583%2594%25E3%2583%25B3%25E3%2582%25B0&sa=U&ved=0ahUKEwjH7s223I3SAhUMbbwKHWkWAroQFggcMAI&usg=AFQjCNHZAORThLyskf3nDxY9SlIMZY3Mvg期待するものは、httpsから始まるURLですが、最初に”/url?q=”という文字がついています。ユーザエージェントの指定で結果が変わるようです。CasperJSのデフォルトのユーザエージェントは下記のものでした。Safari/538.1ユーザエージェントをChromeのものに変えると期待するURLを得ることができました。Safari/537.36”);スクレピングするならbotらしいユーザエージェントが良いのだと思います。