Re: WebViewで表示しているページのソースを保存

1,994 views
Skip to first unread message

NickQ

unread,
Nov 5, 2012, 4:39:55 AM11/5/12
to android-g...@googlegroups.com
こんにちは、NickQと申します。
 
JavaScriptを使う方法が一般的ですね。
ただ、もし表示でなくてHTMLの取得が目的なら(表示だとWebViewで表示して、取得と二度手間になってしまうので)
 
DefaultHttpClientを使ってHTTP通信をすれば、レスポンスで取得する事が出来ますよ。
POSTでもGETでも可能です。

2012年11月5日月曜日 1時33分31秒 UTC+9 春助:
現在WebViewで表示しているページのソースを保存する方法を探しています。

Javascriptは勉強したことがないので出来ればJavascriptを用いずに保存したいと思っています。

どなたかご存知のかたがおられましたら知恵をお貸しください。
よろしくお願いします。

春助

unread,
Nov 6, 2012, 1:09:30 AM11/6/12
to android-g...@googlegroups.com
返信ありがとうございます。

明らかに説明不足だったのでもっと詳しく書こうと思います。

作成しようとしているアプリケーションの機能としては
1.WebViewでウェブサイト表示、ソースを取得したいページまで移動
2.ボタンを押すとそのページのソースを取得
というものです。

手順としては
1.WebViewで目的のページまで移動
2.そのページのURLを取得
3.DefaultHttpClientを使用しソースを取得
というようにしていました。

googleやyahooのトップページは問題なく取得できたのですが、
会員専用のページ(IDとパスワードを入力した先のページ)のソースを取得しようとすると
正しく取得できませんでした(タイムアウトした場合のページに飛ばされてそのページのソースを取得してしまいました)

そのためWebViewで表示しているページのソースを直接取得する方法がないかと考えたのですが自分では方法を思いつかずここで質問させていただきました。

もし何かアイディアをお持ちの方がおられましたよろしくお願いします。


2012年11月5日月曜日 18時39分55秒 UTC+9 NickQ:

NickQ

unread,
Nov 6, 2012, 1:42:12 AM11/6/12
to android-g...@googlegroups.com
こんにちは、NickQです。
 
なるほど、認証後ですね。
そのサイトにもよると思いますが、セッションがWebViewと共有されてい無いんだと思います。
CookieManagerなどを使って同期するか、WebViewで入力したID、PASSをPOSTしたら
HTMLは取得可能だと思います。
 
 
このサイト辺りが参考になりそうです。

2012年11月6日火曜日 15時09分30秒 UTC+9 春助:

春助

unread,
Nov 6, 2012, 6:08:46 AM11/6/12
to 日本Androidの会
返信ありがとうございます。

サイトによるとのことですが可能かどうかを見分ける方法などはありますでしょうか?

Shigeo Mutoh

unread,
Nov 6, 2012, 7:28:29 AM11/6/12
to android-g...@googlegroups.com
tmhouseこと武藤です。

サーバはcookie以外にも、refererがどこだったか、httpsか等いろいろ
チェックしているのが普通ですから、別口でhttp requestを投げるのは
早々に諦めた方が良いと思います。

素直にjsで挑んだほうが早いと思いますよ。サンプルも探せば結構
あると思います。documentElement.outerHTML一発で取得できますから。

あと、これは独り言ですが、最近PCでウェブ上の銀行サイトをアクセス
したとき、口座IDを盗むマルウエア(たぶん感染性はないのでウイルス
ではない)のニュースが報じられていますが、Androidでやろうと思えば、
もっと簡単にできてしまうことに注意して欲しいです。

*********************重要*************************************
つまりAndroidの「何かアプリ内からWebサイトへ接続」した場合、
その表示している内容をアプリが悪意を持って盗む可能性がないとは
言い切れません。
なので、必ずホーム画面から「ブラウザ」などを起動してアクセス
するよう注意喚起したいと思います。
********************重要おわり********************************

というわけなので開発側としては、WebViewを使ったアプリを公開する
場合は、悪意がないことをどうやってユーザーに示すかという問題に
直面します。直面してください。

私は直面して、公開できないでいます。

春助

unread,
Nov 6, 2012, 11:46:12 PM11/6/12
to 日本Androidの会
返信ありがとうございます。

こんなアプリがあれば便利だなぁという軽い気持ちで開発を始めましたが危険性などを全く考えてなかったと少し反省しています。

ご忠告ありがとうございました。

Shigeo Mutoh

unread,
Nov 7, 2012, 1:15:27 AM11/7/12
to android-g...@googlegroups.com
tmhouseこと武藤です。

(12/11/7 13:46), 春助 wrote:
> こんなアプリがあれば便利だなぁという軽い気持ちで開発を始めましたが危険性などを全く考えてなかったと少し反省しています。

いやいや、反省されても...。

一応元ネタを示しておきます。
http://developer.android.com/intl/ja/guide/webapps/webview.html
の真ん中より少し下に、

Caution: Using addJavascriptInterface() allows JavaScript
で始まる警告文がそれです。

簡単に言うと、あぶねーから人様のサイトへ行かないようにするとか、考えれ
って言ってるわけですが、私ならこのことを上司に隠すかも知れません。
仕事が増えるから。(笑)

春助さんがお作りになるそのアプリは、開発ツールとして認知されていれば
特段問題ないように思います。UA変更もできると私も使ってしまいそうです。
頑張ってください。


Reply all
Reply to author
Forward
0 new messages