2014年1月11日土曜日

scrapyではてなブックマークのエントリーを取得する

Scrapyを利用してテクノロジーのホットエントリーを取得する。

Scrapyのインストール

http://doc.scrapy.org/en/0.20/intro/install.htmlを参考にインストールする。
pip install scrapyでインストールする場合lxmlのインストールに失敗する場合は、バイナリーパッケージをインストールした後、pip install scrapy -Iでインストールする。
Ubuntuの場合はhttp://doc.scrapy.org/en/0.20/topics/ubuntu.html#topics-ubuntuを参考にインストールしてもいい。

プロジェクトの作成

チュートリアルを参考にプロジェクトを作成する。

プロジェクトの雛形を作成

scrapy startproject hatena
でプロジェクトの雛形を作成する。

items.pyの更新

hatena/items.pyのHatenaItemクラスを更新して出力するデータ構造を定義する。
今回はtitle,description,user,dateの4つのデータを定義する。


hatena.pyの作成

hatena/hatena/hatena.pyを作成し、ダウンロードするサイトとHTMLからHatenaItemにデータを格納するコードを書く。
今回はテクノロジーのホットエントリーを取得するのでstart_urlsに'http://b.hatena.ne.jp/hotentry/it'を指定する。

HatenaItemにデータを格納

XPathItemLoaderを使用してHatenaItemにデータを格納するため
XPathItemLoderのコンストラクトにitemとselectorを指定する。
selectorだけでなくresponseを指定することもできる。
add_xpathメソッドの引数にHatenaItemのフィールド名とXPathを指定しデータを取得する。XPathで取得したデータが第1引数で指定したアイテムのフィールドに格納される。
load_itemメソッドでItemLoaderからItemを取得する。

プロジェクトを実行する

scrapy crawl hatena
でプロジェクトを実行してスクレイピングを行う。

0 件のコメント:

コメントを投稿