Upload
yusuke-ohmichi
View
6.140
Download
1
Embed Size (px)
DESCRIPTION
Androidのブラウザを使ってスクレイピングすると楽。特にAjaxなサイトからもデータを拾える!
Citation preview
Android内のブラウザ(WebKit)を使ったスクレイピング
まいむぞう / 大路 裕介(おおみち ゆうすけ)日本Androidの会北海道支部長
2010年2月13日土曜日
最初に大事なこと現在無職です!
実はAndroidのブラウザを使うと、スクレイピングが楽かもしれない
Ajax前提のサイトからもスクレイピングできるかもしれない
2010年2月13日土曜日
仕組みWebView
Java
C/C++
2010年2月13日土曜日
WebViewとは?WebKitをJavaから使い易いようにラッピングしたもの
アプリケーション内にブラウザを埋め込んで、外(Java)から操作できる
ブラウザ内で動いているJavaScriptから、アプリ本体のJavaコードを呼べる!
2010年2月13日土曜日
WebViewの動作モデルアプリ(Java) ブラウザ(WebView)①http://www.google.com
を読み込め HTML
JavaScript④javascript:demo.hello(document.title);を実行
⑤HTMLのタイトル
②HTTP
パース③読み込んだよー
demoオブジェクトブックマークレットっぽい
2010年2月13日土曜日
スクレイピングするには欲しいサイトを読み込んで、ブラウザ上のJavaScriptでDOMでもXPathでも好きなものを使って情報を取得し、Javaへのインターフェイスオブジェクトに渡すとってもらくちん
2010年2月13日土曜日
何が嬉しいのか?文字コードの推定やコンバート、タグの閉じ忘れなど壊れたHTMLへの対処、SSLやログインセッションへの対応など、細かい部分は自動的に対応してくれる
自作するとかなり大変!
2010年2月13日土曜日
Ajax前提サイトの場合フツウは静的なデータしか取得できない(JavaScriptが動かないので)
Androidを使うとJavaScriptが動くので、非同期通信によるサーバ側からのデータをうまくフックできれば、動的なデータも取得できる今のところAjaxなどの動的データはAndroidを使うのが一番簡単!
2010年2月13日土曜日
Ajaxなスクレイピングアプリ(Java) ブラウザ(WebView)①http://www.hoge.com
を読み込め HTML
JavaScript
④フックしたデータ
②HTTP
HTML取得
インターフェイスオブジェクト
③非同期通信
ここをフック
2010年2月13日土曜日
おしまい今朝のAndroid MLあたりに詳細が載ってます!
2010年2月13日土曜日