第2章 Scrapyの概要について
ここではScrapyの基本的な使い方をまとめておきます。加えて、各ファイルの役割、アーキテクチャについても簡単におさらいしておきます。
Scrapyとは、起点となるURLを決定し、特定の条件のもとでクローラーを移動させ、Webサイトをクロールさせることで、構造化されたデータを抽出するためのPythonのフレームワークです。wget、正規表現、BeautifulSoup、Seleniumなどを組み合わせることで、クローラーの作成やWebスクレイピングはできますが、Scrapyを使うことで、スクレイピングの作業に集中してクローラーを作ることが可能です。
例えば、行儀よくスクレイピングするためのオプション(後述)をはじめ、データを連携して処理するパイプライン機能など、スクレイピングで利用したい様々な機能が、デフォルトで利用可能なため、1からクローラーを作り、様々な機能を新しく実装する必要がない点が特徴かと思います。
もちろん、フレームワークなので、それで対応できないものについては、1から自前のクローラーを作る必要があるので、必ずしもScrapyが優れているわけでもないと思いますが、非常に便利なフレームワークなので、ここではScrapyに焦点を当てて説明していきます。
まずはScrapyをインストールしていきます。ご自身の環境に合わせてpipやcondaでインストールしてください。仮想環境が必要であれば、仮想環境を作ってからインストールしてください。ここでは、pipでインストールします。
# conda install -c conda-forge scrapy
$ pip install Scrapy
$ scrapy -V
Scrapy 2.0.1
Scrapyのプロジェクトファイルは、
scrapy startproject
コマンドで生成できます。ここでは、「sample_pj」という名前のプロジェクトフォルダを作成しています。 $ scrapy startproject sample_pj
New Scrapy project 'sample_pj', using template directory '/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/scrapy/templates/project', created in:
/Users/aki/Desktop/sample_pj
You can start your first spider with:
cd sample_pj
scrapy genspider example example.com
scrapy genspider
コマンドでクローラーの名前とスクレイピングしたいページのURLを指定します。指示にしたがって、scrapy genspider
コマンドでクローラーの名前「sample」と対象のサイトのURLとして「example.com」を指定します。$ cd sample_pj
~/Desktop/sample_pj
$ scrapy genspider sample example.com
Created spider 'sample' using template 'basic' in module:
sample_pj.spiders.sample
これでプロジェクトフォルダの作成は完了です。ここからスクリプトを記述して、スクレイピングを行っていきます。