C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: WebBrowserコントロールでリンク先ファイルをDL


(過去ログ 115 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■67984 / inTopicNo.1)  WebBrowserコントロールでリンク先ファイルをDL
  
□投稿者/ suffre (7回)-(2013/09/13(Fri) 13:18:55)

分類:[C#] 

WebBrowserコントロールを使ってログインするサイトにログインし、あるリンクをクリックすると
そのリンク先にあるファイルをダウンロードするというプログラムを書いています。

ログインとリンク先を取得することはできたのですが、WebBrowserコントロールでURLを指定して
ファイルをダウンロードさせることはできないのでしょうか?

タグを探してInvokeMember("Click")するとファイルをダウンロードするかのダイアログが出てしまいます。

こういうのはWebClientじゃないと無理でしょうか…?

Visual Studio 2012 C#です。
よろしくお願いします。

引用返信 編集キー/
■67986 / inTopicNo.2)  Re[1]: WebBrowserコントロールでリンク先ファイルをDL
□投稿者/ 774RR (105回)-(2013/09/13(Fri) 17:44:53)
事がブラウザだからなー・・・ユーザーがどこを見に行くかはわからないわけだ。
任意のリンクをポチったらダイアログなしで自動でダウンロードできるということは、
悪意のあるサイトがリンクしている「ウイルス」を自動でダウンロードできるってことだ。
そこでダイアログが出ることが対ウイルスの最終抑止力になっている面はあるので、
「ブラウザ」としてはそういう動作を自動化できないほうがいいだろう。

「ダウンローダー」としてなら話は別なんだろうけど。

> サイトにログインし
そのサイトをユーザーの責任において「信頼済みサイト」に登録してもらうと
ダウンロードや開く動作が自動化できるかもしれない。
登録してもらえるかどうかは話が別。

引用返信 編集キー/
■67988 / inTopicNo.3)  Re[2]: WebBrowserコントロールでリンク先ファイルをDL
□投稿者/ PANG2 (2回)-(2013/09/13(Fri) 17:55:20)
WebBrowserよりCookieを取得してファイルをDL
http://bbs.wankuma.com/index.cgi?mode=al2&namber=60603&KLOG=101
引用返信 編集キー/
■68001 / inTopicNo.4)  Re[2]: WebBrowserコントロールでリンク先ファイルをDL
□投稿者/ suffre (9回)-(2013/09/14(Sat) 18:06:51)
No67986 (774RR さん) に返信
> そこでダイアログが出ることが対ウイルスの最終抑止力になっている面はあるので、
> 「ブラウザ」としてはそういう動作を自動化できないほうがいいだろう。
> 「ダウンローダー」としてなら話は別なんだろうけど。

ありがとうございます。
ダウンローダーはどのような手法でダウンロードしているのでしょうか?

WebBrowserコントロールを使っていますが、特にこのコントロールを使わないといけない理由はなく、
ログイン処理やパースが楽だったので使っていたらリンク先のファイルをダウンロードできないことがわかりました。

ですのでブラウザとしてではなくダウンローダーとしてツールを作りたいと思っています。

> そのサイトをユーザーの責任において「信頼済みサイト」に登録してもらうと
> ダウンロードや開く動作が自動化できるかもしれない。
> 登録してもらえるかどうかは話が別。

やってみましたがダメでした…。
引用返信 編集キー/
■68027 / inTopicNo.5)  Re[3]: WebBrowserコントロールでリンク先ファイルをDL
□投稿者/ ヴァン (28回)-(2013/09/17(Tue) 09:34:36)
こんにちは。

目的のページを開いた後に WININET API を使ってダウンロードしてみてはどうでしょうか?

引用返信 編集キー/
■68085 / inTopicNo.6)  Re[3]: WebBrowserコントロールでリンク先ファイルをDL
□投稿者/ suffre (10回)-(2013/09/21(Sat) 13:02:44)
No67988 (PANG2 さん) に返信
> WebBrowserよりCookieを取得してファイルをDL
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=60603&KLOG=101

ありがとうございます!
そのリンクを読んだり関連するサイトを見たりしてCookieをWebClientを継承したクラスに付加することで
リンク先のファイルをダウンロードすることができました。

ただしリンク先のアドレスにパラメータがついているとダウンロードできないようです。
http://sample.com/test.txt?id=1234&name=hoge

これのパラメータを削除したアドレスを指定するとダウンロードできました。

あとリンクがパラメータによってファイルをサーバー側で生成しているようなアドレスの場合はダウンロードできませんでした(アドレスがhttp://〜test.txtのようになっていない)。
http://sample.com/downloader?id=1234&name=hoge


引用返信 編集キー/
■68086 / inTopicNo.7)  Re[4]: WebBrowserコントロールでリンク先ファイルをDL
□投稿者/ suffre (11回)-(2013/09/21(Sat) 13:04:32)
No68027 (ヴァン さん) に返信
> こんにちは。
>
> 目的のページを開いた後に WININET API を使ってダウンロードしてみてはどうでしょうか?
>

ありがとうございます。
WININET APIは初めて知りました。
リンク先のファイルをダウンロードできない場合があるので(http://〜test.txtのようになっていない)こちらも試してみようと思います。
できたらまた返信させて頂きます。
引用返信 編集キー/
■68107 / inTopicNo.8)  Re[5]: WebBrowserコントロールでリンク先ファイルをDL
□投稿者/ PANG2 (7回)-(2013/09/24(Tue) 09:18:31)
WebClientクラスでGETメソッドによりクエリ文字列を送信するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/308wcquerystr/wcquerystr.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -