orangain flavor

じっくりコトコト煮込んだみかん2。知らないことを知りたい。

Webサイトのクローラビリティをチェックする

これはクローラー/スクレイピング Advent Calendar 2014の18日目の記事です。

Webサイトをクローリング、スクレイピングしたいと思ったとき、はじめに何をするでしょうか?

私はとりあえずブラウザの開発者ツールでDOMを覗きますが、その後robots.txt利用規約をチェックします。

そういう作業を繰り返すうちに面倒になってきたので、URLを与えるだけで自動的にクローラビリティ(クロールしやすさ)をチェックするWebサービスをやっつけで作りました。

f:id:mi_kattun:20141219003040p:plain

Crawlability · Check the crawlability of web sites

適当にクロールしたいURLを入力してCheckボタンを押してみてください。

できること

クローラビリティとは言ってもまだコンセプトレベルで、以下のことができるだけです。

  • 指定したURLの情報を表示する
  • トップページの情報を表示する
  • robots.txtを表示する
  • よくあるXML SitemapのURLにアクセスして存在するか確かめる
  • 利用規約っぽいページにアクセスしてみる

もう少しいい感じに情報を取得できるようにしたいです。

中身

ソースコードGitHubに置いてあります。

https://github.com/capybala/crawlability

ちなみに内部では以前の記事で紹介したaiohttpを使っています。Python 3.3から使えるasyncioを使って並列にアクセスしています。

aiohttpはHTTPクライアントだけでなく、HTTPサーバーの機能も実験的ながら付いているので、Webインターフェイスはこれで作ってみました。