スクレイピングするなら『ScraperWiki』使うといいよ

写真拡大




今回はuasiさんのブログ『Yarukidenized:ヤルキデナイズド』からご寄稿いただきました。

■スクレイピングするなら『ScraperWiki』使うといいよ
Web ページからデータを抽出してデータベースに突っ込むことに性的興奮を覚えるみなさん、『ScraperWiki』 *1 使うとキモチイイですよ。以上です。

そうではないみなさんには少々の説明が必要かと思いますので少々書きます。
スクレイピングするならScraperWiki使うといいよ
*1:ScraperWiki
http://scraperwiki.com/

『ScraperWiki』はスクレーパ(Web ページをスクレイピングするスクリプト)とスクレイピングで得られたデータを共有しようぜっという Web サービスです。Wikiと名が付いていますが、Wikiっぽいページ構成になってるわけではなく、スクレーパやデータを誰でも編集できるようにして成果を共有するという理念がWikiと共通しているのが由来みたいです。

●『ScraperWiki』を使うとスクレーパを作るのがラクになります:
・Webベースのエディタでスクレーパを書き、その場で実行できる *2
スクレイピングするならScraperWiki使うといいよ
*2:「Edit(ruby)」usasi / Members of the House of Representatives of Japan『ScraperWiki』
http://scraperwiki.com/scrapers/members_of_the_house_of_representatives_of_japan/edit/

・PHP、PythonまたはRubyが使える(HTMLパーサなどのモジュールは各種インストール済み)
 - PythonにはlxmlやBeautifulSoup、NumPyにRPy *3
 - RubyにはNokogiriやHpricotやMechanize、PDF::Readerも *4
 - PHPは……詳しくないです *5
・1日に1回〜半年に1回のスケジュールで定期的に実行してくれる
・スクレーパのソースコードは誰でも編集、フォークできる

*3:「Python batteries included in ScraperWiki」Documentation / 3rd party libraries『ScraperWiki』
http://scraperwiki.com/docs/python/python_libraries/

*4:「Ruby batteries included in ScraperWiki」Documentation / 3rd party libraries『ScraperWiki』
http://scraperwiki.com/docs/ruby/ruby_libraries/

*5:「PHP batteries included in ScraperWiki」Documentation / 3rd party libraries『ScraperWiki』
http://scraperwiki.com/docs/php/php_libraries/

●データの保存と再利用もカンタンです:
・データをSQLiteに保存できる
・REST API でデータを取得できる(クエリをビジュアルに編集できるエディタつき *6)
・HTMLで書いたビューもホストしてくれる(『Google Maps』にデータをプロットする例 *7)

*6:scraperwiki.datastore.sqlite / Documentation / External API『ScraperWiki』
http://scraperwiki.com/docs/api?name=california_interpreters#sqlite

*7:『Google Maps』にデータをプロットする例
http://scraperwikiviews.com/run/ca_smog_check_stations_2/

うまく使えば楽しいことができたり性的に興奮したりするのではないでしょうか。僕も衆議院の議員一覧 *8 のスクレーパ *9 を書いてみましたよ(性的には興奮しませんでした)。

*8:衆議院議員一覧『衆議院』
http://www.shugiin.go.jp/index.nsf/html/index_kousei3.htm

*9:ruby ? public scraper / uasi / Members of the House of Representatives of Japan『ScraperWiki』
http://scraperwiki.com/scrapers/members_of_the_house_of_representatives_of_japan/

以上です。

追伸:このスクレーパ *10 は簡潔なので編集画面を開いて *11 コードを眺めたり実行したりすると感じがつかめるかもしれません。チュートリアル *12 を読みつつ、スクレーパ一覧 *13 から maintenance required なコードを探して直してみるのもいいでしょう。

*10:Scraper / python ? public scraper / Ben Harris / ICO Decision Notice bodies『ScraperWiki』
http://scraperwiki.com/scrapers/ico_decision_notice_bodies/

*11:Edit(python) / python ? public scraper / Ben Harris / ICO Decision Notice bodies『ScraperWiki』
http://scraperwiki.com/scrapers/ico_decision_notice_bodies/edit/

*12:Python / Tutorials, references and guides for programmers coding on ScraperWiki / Documentation『ScraperWiki』
http://scraperwiki.com/docs/python/

*13:Browse scrapers『ScraperWiki』
http://scraperwiki.com/browse/scrapers/

執筆: この記事はuasiさんのブログ『Yarukidenized:ヤルキデナイズド』からご寄稿いただきました。

■関連記事
SEOの2倍アクセスを稼ぐFacebook活用術 「いいね!」ボタンと「OGP」の設定方法を超解説
クラブイベントに疲れた
ポピュリズムについて
Sony EricssonのAndroid向けアクセサリー『LiveDock』はBluetooth PS3ゲームコントローラーもサポートするらしい
禁断の組み合わせ……ハンバーグ×タルタルソースは魅惑の味