- - PR -
[C#2005/Windowsアプリ]WEBページをローカル保存する方法
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-08-18 17:11
Windowsアプリにて以下のような物を作りたいと思ってます。
ID/PASS/種別の入力の必要のあるWEBページ(Aページ)へアクセス ↓ AページのメニューからBページへアクセス ↓ Bページをローカル保存 ※全てをプログラムで自動化 私が試した方法は以下の2つです。 1)DOBON.NETさんで公開してる「Cookieを使ってファイルをダウンロード」という方法 →無事Bページの保存はできたのですがCSSや画像を多用しているせいか 保存したHTMLに情報が足りないように見える(消しこみ線やいろいろなタグをCSSでカバーしているようで、HTMLだけでは完全なファイルになりませんでした・・・) 2)axWebBrowserの使用 →Bページまでアクセスすることはできましたが、保存ができませんでした。 (また、Aアクセス→Bアクセス→axWebBrowser.ExecWBと続けるとaxWebBrowser.ExecWBで例外処理が必ず発生してしまいました。 また例外が発生しないように処理を分けても、axWebBrowser.ExecWB自体が自動で保存できないので無理でした) では、WEBページをPDFに変換して保存してはどうだろうか?と思いWEBで かなり調べたのですがC#に適応してるPDF変換方法やAPIを発見できませんした。 WindowsアプリでWEBページをローカル保存する良い方法がありますでしょうか? 宜しく御願いします。 | ||||||||||||
|
投稿日時: 2007-08-18 18:22
ExecWB(IDM_SAVEAS) では駄目なのでしょうか。 | ||||||||||||
|
投稿日時: 2007-08-18 19:31
ダメでした。
処理1 Aページのアクセス 処理2 Bページへのアクセス→ExecWB(IDM_SAVEAS) の場合は上手くいくのですが全てを一つの処理の中に記述するとExecWBでなぜか例外処理が発生してしまいます。 また 処理3 処理1と処理2の呼び出し としてみてもやはり同じ所でエラーが発生してしまいます。 もしこのエラーがでない方法があっても保存のダイアログで「マウスを押す(保存ボタン押下)」という人的操作が発生してしまいます・・・。 保存まで全てを処理で行いたいのです・・・。 | ||||||||||||
|
投稿日時: 2007-08-18 20:14
処理1, 処理2 間(あるいはそれ以外の箇所でも)でメッセージポンプを回さないと駄目なのかもしれないですね。
なるほど、自プロセスに対してなら .NET でもメッセージフックを使ってなんとかなるかもしれませんが、あまりスマートな解とは言えませんね。
ブラウザコントロールで駄目となると全部自前でなんとかするしかなさそうですが、かなり大変だと思います。 | ||||||||||||
|
投稿日時: 2007-08-18 21:51
はい、ですのでExecWBの使用はむずかしいかと思いました・・・。
ではPDF化してはどうだろう?と思ったのです。 WindowsアプリでWEBページをPDF化は無理なのでしょうか・・・? | ||||||||||||
|
投稿日時: 2007-08-19 00:15
どういう操作を想定していますか? アプリケーションで PDF を作成するためのライブラリも存在しますが、そもそも PDF を組み立てるための「ネタ」の獲得の段階で詰まっているんじゃないんでしょうか。 | ||||||||||||
|
投稿日時: 2007-08-19 00:27
全部自動化したいならBrowserを使うのは遠回りではないですか?
HttpWebRequestで保存できるなら、 あとは取得したHTMLをパースして 足りない画像など外部ファイルも ダウンロードすればいいだけだと思いますが。 外部ファイルが変更されない用途なら 初めからローカルで持っていてもいいですし。 | ||||||||||||
|
投稿日時: 2007-08-19 01:05
画像として保存したいのなら次のサイトなどに解説がありますよ。
http://passing.breeze.cc/mt/archives/c/ http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserDrawToBitmap.htm |
1|2|3
次のページへ»