ざきの学習帳(旧 zackey推し )

日々の学びを書きます

【学習記録】robots.txtとは(スクレイピング関連)

f:id:kic-yuuki:20181231154124p:plain

みなさん、2018年本当にお疲れ様でした。
年末年始、いかがお過ごしですか?(´・ω・`)

自分は帰省し、お酒を一日中飲みながら溜まりに溜まったUdemyの動画やKindle本、コミュニティのタスクをだらだらと進めていく予定です。

はじめに(何の記事?)

本記事はrobots.txtに関する自分なりのメモになります。
以下のような方の参考になれば幸いです。

  • スクレイピングをはじめてみたい方
  • robots.txtって聞いたことあるけどなあに?って方

経緯

とあるきっかけでTechplayさんのイベントページからスクレピングする機会がありました。以下がスクレイピングを試みた際の記事になります。

qiita.com

スクレイピングは難しいと勝手にハードルを作って、手を出してこなかったのですが、

  • 自分の欲しい情報がうまく取り出せたときの楽しさ
  • 正規表現に詳しくなる自分の成長に対しての喜び

を感じことができ、非常に楽しいです!

今後もスクレイピングを使って何かアプリ等々を作ってみたいと思っています。

スクレイピングの方法や目的次第等では法に触れてしまうことがあります。そのような落とし穴にはまらないよう、注意事項は以下のような記事でまとめてくださっています。(ありがたや)

ただ、上記のような記事で当たり前のように登場するrobots.txtについて詳細を知らなかったため、今回を気に調べ、本記事に咀嚼した内容をまとめたという感じになります。

robots.txtについて

ロボッツテキストと言うようです。
以下の記事を参考にさせていただきました。

robots.txtとは

クローラー*1に対するWebページへのアクセス制限を記載したファイルのことです。

Webサイトのルート配下に配置されているようで、URL直打ちすると、閲覧することも可能です。

ファイルフォーマット

基本的には以下のことが記載されています。

  • User-agent
  • Crawl-delay
    • 巡回頻度(秒数)
  • Allow
    • 指定されたパス配下はアクセス可能
  • Disallow
    • 指定されたパス配下はアクセス不可

試しにconnpassのrobots.txtを閲覧してみると、以下のように表示されていることがわかります。

User-agent: *
Crawl-delay: 5
Allow: /
Disallow: /series/optout/
Disallow: /account/

上記は以下のような意味合いとなります。

User-agent: *  ←全てのクローラーに対して
Crawl-delay: 5  ←5秒間に1回の頻度でアクセス可能
Allow: /  ←全てのパスに対してアクセス可能
Disallow: /series/optout/  ←左記パスはアクセス不可
Disallow: /account/ ←左記パスはアクセス不可

つまり「/series/optout/ 、/account/ 」以外はアクセス可能。ただし、5秒間に1回の頻度でアクセスしないとダメ。ということですね。

Allowが指定されていなくてもアクセス可能

robots.txtはAllowが明記されていなくても、Dissalowに該当するパスにアクセスしなければ問題ないようです。

Allowが使用されるケースは、Disallowで指定されたパス配下に特別アクセス許可させたい場合に設定されるようです。

詳細は以下記事を参照していただければと思います。

www.suzukikenichi.com

おわり

以上になります!
もし間違い等ありましたら、ご指摘いただけると助かります。

さて...2018年もあと少し。精一杯だらけるとするかな。
(´・ω・`)

では、良いお年を!

*1:スクレイピング等の技術を用いてWebサイト・画像・どいうが等のコンテンツを収集、保存するプログラムのことをクローラーと言います。詳しくはこちらのサイトを参照ください。