SlideShare a Scribd company logo
1 of 50
Download to read offline
オープンデータのためのスクレイピング
〜抽出・共有・分析まで〜
2014.06.22
第1回 Webスクレイピング勉強会@東京
OpenDataInstitute CC BY-NC-SA 2.0
@ito_nao
Webスクレイピングが出来る
“プログラミング不要”の
Webサービス・フリーツール
今回…
のみをご紹介。
PhOtOnQuAnTiQuE CC BY-NC-ND 2.0
Beautiful Soup
PyQuery
一つの言語で抽出・加工・分析・可視化まで
出来るんだけど…。
Hpricot
各言語にあるパーサやライブラリを使えば、
etc.
nolnet CC BY-NC 2.0
Webサービスやフリーツールを
“使うべき”なのはどんな人?
Alex Medvick CC BY-ND 2.0
• プログラマーでない場合、言語を一から勉強しなければな
けない
• 手っ取り早くデータを抽出して、分析や可視化などのデー
タ活用に時間をかけたい
メリット
スクレイピング機能だけでなく、APIやライブラリなどで
取得データの利用面も考えられている
デメリット
・無料で出来ることは限られている
・サービスや開発がいつ終了するかわからない
何よりも・・・
スクレイピングの敷居を下げることで、
日本のオープンデータが少しでも進展す
るのでは。
Matt CC BY-NC-SA 2.0
各国(政府ポータル)比較
12,914 306 1,136 3664 164
24,528 5,013 4,122 30,382 3,193
4,512 5,453 2,122 584 1
右図の星にカウントできる拡張子のみ対象(2014.06.18時点)
HTML等
星0
more
Andrechinn CC BY 2.0
政府による、プロダクト
やサービスに関する
データの公開
民間による、プロダクト
やサービスに関する
データの公開
政府による、個々人への
パーソナルデータの公開
民間による、個々人への
パーソナルデータの公開
消費者がより良い選択ができるようになるために必要なデータの公開。
Smart Disclosure と 4分類
Smart Disclosure and Consumer Decision Making: Report of the Task Force on Smart Disclosure
Open Data MyData
米国ではオープンデータとMyDataに分け、
推進のために様々な施策が打たれている。
McKinseyによるレポート
http://www.mckinsey.com/insights/business_technolog
y/open_data_unlocking_innovation_and_performance_
with_liquid_information
オープンデータにより、毎年3.2兆ドルの経済的価値を生み出す。
McKinseyによるデータ種別
7つのドメインと経済効果
McKinseyのレポートを踏襲した7つのドメイン
G20におけるオープンデータの経済効果は5年間で13兆ドル
http://www.omidyar.com/sites/default/files/file_archive/insights/ON%20Report_061114_FNL.pdf
オープンガバメントデータ
×
民間企業オープンデータ
×
MyData(パーソナルデータ)
によって、
こんな世界が実現したら
素敵じゃないですか?
食品の栄養成分データ
日本人の食事摂取基準
メニューレシピや製品の
栄養成分データ
カルテ、レセプトデータ
活動量計・体組成計など
のデータ
食品×ヘルスケアデータでの例。
日々の健康管理をスマートに、高精度に。
2013.08.29
G-8 International Conference on
Open Data for Agriculture
2013.08.31
Global Open Data for Agriculture and
Nutrition initiative
2013.09.23
Product Open Data
Pfizer Blue Button Project
2013年12月に、ファイザーがBlue Button Connectを
使って、臨床試験に参加した個人が試験データを全てダ
ウンロードできるようにすると発表。2014年1月開始。
高齢者および障害者向け公的医療保険制度受給者や退役軍人が各々の医療記録をダ
ウンロードできるサービス。
http://www4.va.gov/bluebutton/
Blue Button
2014.05.31 – 06.03
米国政府CTOがopenFDAを発表 https://open.fda.gov/
最初のフェーズでは、薬物の副作用や薬剤過誤についてのデータをAPIで公開。
今夏には、医薬品ラベルデータやリコールデータを公開する予定。
食品の栄養成分データは公開されている?
プレミアム会員の機能の一つ。
「カロリー塩分をクリックして表示」
レシピ材料欄の食材や分量と、文部科学省「日本食品標
準成分表2010」などから自動計算。
全て P・D・F!!
出展:文部科学省ウェブサイトを加工
http://www.mext.go.jp/b_menu/shingi/gijyutu/gijyutu3/houkoku/1298713.htm
食品成分データベース
http://fooddb.mext.go.jp/
検索DBはあるけど、Raw Data Now !!
Department of Agricalture
http://www.ars.usda.gov/Services/docs.htm?docid=22771
米国ではバルクダウンロード可能。
日本人の食事摂取基準データは?
こちらも、全て P・D・F!!
出展:厚生労働省省ウェブサイトを加工
http://www.mhlw.go.jp/stf/shingi/0000041824.html
Tabula
PDFからデータを抽出する
フリーツールといえばこれ。
• Knight-MozillaのFellowとProPublicaの有志によって2013
年に公開。(もちろんオープンソース)
• ローカルサーバーで動作。
• JRuby scriptでApache PDFBox Java libraryを動かし、
XML化してデータを抽出。
• WindowsとMacにインストール可。
http://tabula.nerdpower.org/
Webスクレイピングツールと
して有名なのは以下3つ。
http://www.kimonolabs.com/
https://import.io/ https://scraperwiki.com/
今回はScaperWikiは除外します。
理由
1.Python,R,Rubyで処理を書く必要がある。
2.無料では3つしか処理・データセットを作れない。
CKANにパブリッシュできたり、ODataでデータ共有できた
り、PDFからデータ抽出出来たりと、オープンデータに必要
な差別化された特徴もあるんだけど…。
特徴
• Webアプリケーション
完全にインターネット上で動く。
• Paginationが得意、クローリングが苦手
Paginationはimport.ioよりちゃんと動作する。
クローリングは得意ではないが、APIの組み合わせでク
ローリングもどきはできる。
• スケジューリング可能
完全にインターネット上で動く。
料金プラン
http://www.kimonolabs.com/pricing
スクレイピング
(Pagination)
実践
http://info.finance.yahoo.co.jp/history/?code=3828.T&sy=1983&sm=3&sd=15
クローリング
実践
http://www.family.co.jp/goods/safety/index.html
データの引き出し
• APIのエンドポイントはJSON、CSV、RSSを用意。
• 一回で2500レコードしか取得できないが、分割取得できる。
例)kimoffsetを使って、1万レコードを4回に分割。
http://www.kimonolabs.com/api/{API_ID}?apikey={YOUR_API_KEY}
http://www.kimonolabs.com/api/{API_ID}?apikey={YOUR_API_KEY}&kimoffset=2500
http://www.kimonolabs.com/api/{API_ID}?apikey={YOUR_API_KEY}&kimoffset=5000
http://www.kimonolabs.com/api/{API_ID}?apikey={YOUR_API_KEY}&kimoffset=7500
• クローリングに時間がかかる処理の場合、例えばクローリン
グ最中でも取得した途中結果を取得できる。
• 複数ページもしくはPaginationでスクレイピングした場合、
ページごとのデータを取得できる。
http://www.kimonolabs.com/api/{API_ID}?apikey={YOUR_API_KEY}&kimbypage=1
データの引き出し
• バージョン履歴で取得出来る
同APIで過去に取得したデータはVersionでカウントアップして保存されている。
http://www.kimonolabs.com/api/{VERSION_NO}/{API_ID}?apikey={YOUR_API_KEY}
• 時系列データとして取得できる
一つのプロパティのみを取得するAPIを作成し、kimseriesで取得。
http://www.kimonolabs.com/api/{API_ID}?apikey={YOUR_API_KEY}&kimseries=1
特徴
• クライアントアプリケーション
スクレイプ処理、クローリング処理はクライアントで動く。
• Paginationが苦手、クローリングが得意
Paginationがうまく動作しないことはユーザーフォーラムでも挙がって
おり、改善中のよう。
クローリングは細かい設定も可能。ただ、速度はPC環境依存。
• スケジューリングが出来ない
アプリケーション上で手動で実行する必要がある。
クライアントライブラリを使えば、一応スケジューリング出来る。
単一ページのテーブル
形式やリスト形式など
から、アルゴリズムで
自動的に同様のデータ
を抽出できる。
Extractorsのようにマッ
ピングしたデータとマッ
チするパターンのページ
をクローリングしてデー
タを取得する。
サーチボックスに連動した
Extractorsを作成する。
Pagination機能あるのはこれ
だけ。
データの引き出し
料金プラン
https://import.io/pricing
Crawler 実践
http://www.kagome.co.jp/products/food/
Connector 実践
http://shopping.nifty.com/
データの引き出し
• スプレッドシート アプリケーション
ExcelとGoogleSheetsへWebインポートし、自動更新処理
で常に最新のデータを取得できる。
• クライアント ライブラリ
Java、C#、Python、Object-C、Rubyなどを用意。
スケジューリングが出来ないという弱点があるが、ライブラリで
抽出→DBへ格納も出来る。
• パッケージ
先週、PythonとRubyのパッケージが公開!
Python https://pypi.python.org/pypi/Importio/
Ruby https://rubygems.org/gems/importio
効率的 かつ 迷惑をかけないためのお作法
(時系列データの場合)
1.取れるだけ全てのデータを一気に抽出する
2.抽出した全データをDBに格納する
3.データの更新頻度と更新量に応じて、
上位にあるデータのみ抽出
4.全データを格納したDBに差分更新する
Roger Walch CC BY-NC-ND 2.0
One more thing...
時系列データを
スクレイプした場合
Ken Teegardin CC BY-SA 2.0
Big data landscape v 3.0
Matt Turck (FirstMark) from Matt Turck
Big data landscape v 3.0
Matt Turck (FirstMark) from Matt Turck
以下のサービスは、データの検索
サイトであり、誰でもアップロー
ドできる。
• 800万以上のデータセットを検索可能
• APIなどでの取得が5000回/時まで可能
• TOOLBELTをインストールすることで、スクレイピングから
のアップロードが可能
Windows,Mac,Linuxに対応。もちろんローカルにあるファイル指定でアップ
ロードも可能。
• Excelプラグインで容易にデータをインポート
• 豊富なパッケージライブラリ
R,Python(Pandas),Julia,Matlab,Stata,C#,Java,.NET,Clojure etc.
http://www.quandl.com/
Enjoy Data Hunting ♪
Thank you !!
gfpeck CC BY-ND 2.0

More Related Content

What's hot

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
 
Amosを使ったベイズ推定
Amosを使ったベイズ推定Amosを使ったベイズ推定
Amosを使ったベイズ推定
考司 小杉
 
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
Issei Kurahashi
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
Yohei Sato
 
条件付き確率場の推論と学習
条件付き確率場の推論と学習条件付き確率場の推論と学習
条件付き確率場の推論と学習
Masaki Saito
 

What's hot (20)

強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知
 
Nagoya.R #12 非線形の相関関係を検出する指標の算出
Nagoya.R #12 非線形の相関関係を検出する指標の算出Nagoya.R #12 非線形の相関関係を検出する指標の算出
Nagoya.R #12 非線形の相関関係を検出する指標の算出
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
Rによるベイジアンネットワーク入門
Rによるベイジアンネットワーク入門Rによるベイジアンネットワーク入門
Rによるベイジアンネットワーク入門
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
統計的因果推論からCausalMLまで走り抜けるスライド
統計的因果推論からCausalMLまで走り抜けるスライド統計的因果推論からCausalMLまで走り抜けるスライド
統計的因果推論からCausalMLまで走り抜けるスライド
 
Hough forestを用いた物体検出
Hough forestを用いた物体検出Hough forestを用いた物体検出
Hough forestを用いた物体検出
 
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講
 
Amosを使ったベイズ推定
Amosを使ったベイズ推定Amosを使ったベイズ推定
Amosを使ったベイズ推定
 
単語の分散表現と構成性の計算モデルの発展
単語の分散表現と構成性の計算モデルの発展単語の分散表現と構成性の計算モデルの発展
単語の分散表現と構成性の計算モデルの発展
 
これからの仮説検証・モデル評価
これからの仮説検証・モデル評価これからの仮説検証・モデル評価
これからの仮説検証・モデル評価
 
確率的主成分分析
確率的主成分分析確率的主成分分析
確率的主成分分析
 
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度
 
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
 
条件付き確率場の推論と学習
条件付き確率場の推論と学習条件付き確率場の推論と学習
条件付き確率場の推論と学習
 

Viewers also liked (6)

ScrapyとPhantomJSを用いたスクレイピングDSL
ScrapyとPhantomJSを用いたスクレイピングDSLScrapyとPhantomJSを用いたスクレイピングDSL
ScrapyとPhantomJSを用いたスクレイピングDSL
 
CasperJSを使って任意のWebサイトを電子書籍化する方法
CasperJSを使って任意のWebサイトを電子書籍化する方法CasperJSを使って任意のWebサイトを電子書籍化する方法
CasperJSを使って任意のWebサイトを電子書籍化する方法
 
Rubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピングRubyで始めるWebスクレイピング
Rubyで始めるWebスクレイピング
 
CookWhat - 食材画像からのレシピ提案-
CookWhat  - 食材画像からのレシピ提案-CookWhat  - 食材画像からのレシピ提案-
CookWhat - 食材画像からのレシピ提案-
 
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawlerRubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
 
続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門続Pythonによるwebスクレイピング入門
続Pythonによるwebスクレイピング入門
 

Similar to オープンデータのためのスクレイピング

Similar to オープンデータのためのスクレイピング (20)

OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。
Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。
Open 棟梁 プロジェクトの、省力・省人・少人化による、コスト削減の全容。
 
Ansibleは簡単なIT自動化
Ansibleは簡単なIT自動化Ansibleは簡単なIT自動化
Ansibleは簡単なIT自動化
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructureCytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructure
 
Project Prague を試してみました
Project Prague を試してみましたProject Prague を試してみました
Project Prague を試してみました
 
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
第3回 開発ツールチラ見せ♡ナイト オープニングプレゼン
 
LightSwitch 結局何ができるの
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるの
 
Piwik fluentd
Piwik fluentdPiwik fluentd
Piwik fluentd
 
研究を基にしたオープンソース開発チェックポイント
研究を基にしたオープンソース開発チェックポイント研究を基にしたオープンソース開発チェックポイント
研究を基にしたオープンソース開発チェックポイント
 
LightSwitchでマルチデータソース
LightSwitchでマルチデータソースLightSwitchでマルチデータソース
LightSwitchでマルチデータソース
 
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
 
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
San Diego Japan Bio Forum: ライフサイエンス向けデータ可視化技術の現状
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツールkintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツール
 
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
 

Recently uploaded

Recently uploaded (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

オープンデータのためのスクレイピング