ガジェット通信 GetNews

見たことのないものを見に行こう
「ジャスティス・リーグ」特集サイト

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

DATE: BY:
  • ガジェット通信 GetNewsを≫
Yarukidenized:ヤルキデナイズド

今回は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:ヤルキデナイズド』からご寄稿いただきました。

寄稿の記事一覧をみる ▶

記者:

ガジェット通信はデジタルガジェット情報・ライフスタイル提案等を提供するウェブ媒体です。シリアスさを排除し、ジョークを交えながら肩の力を抜いて楽しんでいただけるやわらかニュースサイトを目指しています。 こちらのアカウントから記事の寄稿依頼をさせていただいております。

TwitterID: getnews_kiko

  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。