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

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

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

Re[3]: web上の画像を保存する方法


(過去ログ 144 を表示中)

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

■84582 / inTopicNo.1)  web上の画像を保存する方法
  
□投稿者/ がん (1回)-(2017/07/18(Tue) 21:59:29)

分類:[.NET 全般] 


https://dobon.net/vb/dotnet/internet/downloadfile.html


このページに書かれてある方法で画像をダウンロードするコードを書きました。



Dim wc As New System.Net.WebClient()
wc.DownloadFile("http://cosplay-toriko.com/pict/100322/001htxq.jpg", "d:\test.jpg")
wc.Dispose()


しかし、

型 'System.Net.WebException' のハンドルされていない例外が System.dll で発生しました

追加情報:リモート サーバーがエラーを返しました: (403) 使用不可能

というエラーが出てダウンロードすることができません。

https://dobon.net/vb/dotnet/internet/webrequestsavefile.html

こっちの方法も試してみましたがやはり同様のエラーが出てしまいます。

http://www.wankuma.com/images/logo4.gif

という画像ファイルだとダウンロードできたので、
プログラムからダウンロードできないようにセキュリティがかかっているのではないかと思います。

IEやGoogle chromeなどからは普通に閲覧できますし、手動ならダウンロードもすることができます。

VB.NETでダウンロードするにはどのようにしたら良いですか?



引用返信 編集キー/
■84583 / inTopicNo.2)  Re[1]: web上の画像を保存する方法
□投稿者/ 魔界の仮面弁士 (1347回)-(2017/07/19(Wed) 00:01:03)
No84582 (がん さん) に返信
> VB.NETでダウンロードするにはどのようにしたら良いですか?

そのサイトの場合はこんな感じ。

Using wc As New System.Net.WebClient()
  wc.Headers.Add("User-Agent", "#84582")
  wc.DownloadFile("http://cosplay-toriko.com/pict/100322/001htxq.jpg", "C:\TEMP\test.jpg")
End Using
引用返信 編集キー/
■84586 / inTopicNo.3)  Re[2]: web上の画像を保存する方法
□投稿者/ がん (2回)-(2017/07/19(Wed) 12:01:26)

ありがとうございます。
うまくいきました。


ここにも同じようなコードがありました。

http://www.atmarkit.co.jp/ait/articles/0505/20/news138.html



wc.Headers.Add("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)");


つまり、IEなどの他のブラウザに互換性のある読み込み方をすれば良いということですよね?

質問1

"#84582"
というのは何を表していますか?



質問2
https://msdn.microsoft.com/ja-jp/library/system.net.webclient.headers(v=vs.110).aspx

他にどのようなヘッダーがあるのか知りたいのですが
Microsoftの公式ページを見てみましたが
わずかしか情報がありませんでした。
どこのページにヘッダーに関する情報が書かれてありますか?



引用返信 編集キー/
■84587 / inTopicNo.4)  Re[3]: web上の画像を保存する方法
□投稿者/ 魔界の仮面弁士 (1348回)-(2017/07/19(Wed) 12:34:12)
No84586 (がん さん) に返信
> つまり、IEなどの他のブラウザに互換性のある読み込み方をすれば良いということですよね?
特定のブラウザを真似る必要は無く、User-Agent さえ指定されていれば良いみたいです。
User-Agent が指定されていなかったり、User-Agent が空文字だったりする場合は 403 になるようで。

> 質問1
> "#84582"
> というのは何を表していますか?
貴殿の投稿番号です。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=84582

> 質問2
> どこのページにヘッダーに関する情報が書かれてありますか?
ヘッダーの仕様を知りたいという意味なら、RFC 等を読んでください。
どのようなヘッダーが送信されていたのか確認したいということであれば、
Fiddler を使うのが簡単かと思います。
https://msdn.microsoft.com/en-us/library/windows/desktop/ff966510.aspx
https://blogs.msdn.microsoft.com/dsazurejp/2014/10/31/fiddler/
http://blog.loadlimits.info/2009/09/%E5%AE%9F%E3%81%AFfiddler


先の回答で User-Agent を付与したのも、Fiddler の Composer タブで
送受信のテストを行うことで気が付いたが故のことです。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -