Python製オープンソースライブラリ「Scrapy」でスクレイピングしてみた話


Web上を自由に徘徊(クローリング)して,必要な情報抜き出してほしい情報を抽出(スクレイピング)してみたくなりました.

世の中にはいくらでもスクレイピングツールが出回っていますが,
プログラマブルなスクレイピングモジュールって少し敷居が高いと思って敬遠していました.

軽く足が突っ込めるようにPythonで,サクっとスクレイピングしてデータマイニング入門できるようなツールを探したところ,Scrapyと呼ばれるオープンソースのスクレイピングライブラリを見つけました,
https://github.com/scrapy/scrapy/

準備:
- scrapyのインストール
   $ pip install scrapy

手順:
scrapyを使ってスクレイピングを行うにあたっては以下の3stepの作業になります.

1. scrapyプロジェクトの作成
$ scrapy startproject tutorial
  # tutorial プロジェクトが出来ました.
  # 生成物は以下のとおり

$ tree tutorial/
tutorial/
├── Books
├── Resources
├── items.json
├── scrapy.cfg
└── tutorial
    ├── __init__.py
    ├── __init__.pyc
    ├── items.py
    ├── items.pyc
    ├── items.py~
    ├── pipelines.py
    ├── settings.py
    ├── settings.pyc
    └── spiders
        ├── __init__.py
        ├── __init__.pyc
        └── __init__.py~


 2. 抽出する情報の型を定義
tutorial/tutorial/items.py を編集します

 3. spiderと呼ばれるWeb上を徘徊するコードと情報の抽出ロジックを書く
tutorial/tutorial/spiders/__init__.py を以下のように編集します


実行
$ scrapy crawl dmoz -o items.json -t json
items.jsonにtitle, link, desc タグがjsonデータで取得されていれば問題なく使えています.


参考:
http://doc.scrapy.org/en/latest/intro/tutorial.html

コメント

このブログの人気の投稿

Callback関数を知らん人がまず理解すべきことのまとめ。

C言語でBluetoothスタックを叩きたい人のBluetooth開発入門その1

構文エラー : ';' が '型' の前にありません