#はじめに
これは初心者向けに(と言うか、過去の自分に向けて)書いた「スクレイピングとは何か?」という記事です。
これからスクレイピングをやってみようという人のための概要説明ですので、ここが貴方の初めの一歩としてお役に立てますように。
###スクレイピングとは
「ウェブスクレイピング(英: Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと(Wikipedia出典)」
つまり、ウェブページから自分が欲しいと思った情報を取ってくる技術のことを「スクレイピング」と言うわけです。
混同されやすいものとして「クローリング」というのもあります。
こちらは「プログラムがインターネット上のリンクを辿ってWebサイトを巡回し、Webページ上の情報を複製・保存すること(weblio辞書出典)」
違いはなんだ…?一緒では…?と思ったかもしれませんが、その感覚はほぼ正解です。
どちらの技術も情報収集が目的ですから。しかし、重きを置いている部分が少し違います。
スクレイピングは「webサイトの情報から必要な情報だけ取り出す(=抽出)」ことに重きを置いており、クローリングは「webサイトを複数巡回して情報を集める(=収集)」ことに重きを置いているようです。
なので、webページを複数辿りながら必要な情報だけを取りたい場合「クローリングしてスクレイピングする」ということになります。
人によって少し捉え方が違うようですが、「互いを補完し合う技術(=収集と抽出)」という解釈で大丈夫でしょう。
###注意点
クローリングは自動でwebサイトの情報を取得するので、場合によっては著作権に関する法律やサイトポリシーに違反する行為となる恐れがあります。何か調査をする際には、十分に気を付けましょう。
逆に、自分のサイトをクローリングされたくない場合も考えてみましょう。
いくつか方法がありますが、まずはサイトポリシーにハッキリ書くことが重要です。しかし、それだけでは自動でクローリングしている相手(いわゆるボットなど)に気付かれない可能性があるので、robots.txtを作成しましょう。
このファイルに、クローリングを許可するかどうかなどの設定を書いておくと、悪意のある相手でない限りはクローリングを避けられます。
参考サイトとして「ぼくらのハウツーノート」さんをご紹介しておきます。
###Scrapy(スクレイピー)
さて、先ほど、スクレイピングとクローリングの違いについて説明しましたが、勘の良い人はこう思ったかもしれません。
「クローリングとスクレイピングって別々にやらないといけないの?」
クローリングやスクレイピングを行うためのフレームワークはたくさんありますが、実は、クローリングしながらスクレイピングもできるフレームワークがあります。
それが**Scrapy**です。
Scrapyの使い方に関して、参考サイト「note.nkmk.me」をご紹介します。
こちらのサイトではScrapyのチュートリアル解説や、分かりやすい実例を書いてくれていますので、もしも「やってみたい!」と思った方はぜひ参考にして下さい。(私も参考にさせて頂きました。)
###おわりに
Qiitaへの投稿はこれが初めてですので、今回は書き方の練習も兼ねた記事としてシンプルな内容にしました。
追加・訂正はご指摘があった場合、または私の知識が更新された場合に行います。