サーバレスな汎用スクレイパーを作った。

anoninoni.hateblo.jp

以前SERVERLESS FRAMEWORKを紹介したんですが、 今回はSERVERLESS FRAMEWORKを使ってスクレイパーを作りました。

github.com

使い方

serverless deploy --stage production

AWSにdeployして使います。

例: githubリポジトリのページからStar数を取ってくる。

/scrape?
url=https://github.com/anoChick/basicscraper&
query=.social-count.js-social-count&
datatype=int

urlで対象ページを指定し、queryで対象のhtml要素を指定します。 datatypeをつかうとトリムされたり小数点を丸めたり出来ます。

f:id:anoChick:20161128025823p:plain response:

{
  "datetime": "2016-11-27 05:56:14",
  "url": "https://github.com/anoChick/basicscraper",
  "result": {
    "query": ".social-count.js-social-count",
    "value": 0
  }
}

同一サイトに対して複数の要素を取得したい場合は、パラメータを配列にして渡すことも出来ます。 また、labelをつけることも可能です。

f:id:anoChick:20161128025747p:plain response:

{
  "datetime": "2016-11-27 05:54:51",
  "url": "https://github.com/anoChick/basicscraper",
  "result": [
    {
      "index": "0",
      "query": ".social-count.js-social-count",
      "value": 0,
      "label": "Star数"
    },
    {
      "index": "1",
      "query": ".author",
      "value": "anoChick",
      "label": "Author"
    }
  ]
}



## 次にやること
```/scrape```でスクレイピングの即時実行する機能が提供できました。

```/schedule```などでジョブのスケジューリングなんかもやれたら良いなって思ってます。

ご利用は自己責任でお願いします。