[程式]想要寫一個下載網路圖片的程式

作者: huevo235 (Huevo)   2015-02-15 23:57:15
  我打算用 C#.net 開發一個能夠從網路下載圖片的程式
  從網路下載圖片的方法一般都是用 WebClient 之類的原件,直接訪問網址然後把讀
取到的串流下載,便可以得到該圖片。
  但是這卻有一個嚴重的問題,某些網路上的圖片是有加密的(像是伊莉),使用者沒
有登入帳號,並且閱讀過該篇文章,就沒辦法查看該文章底下的任何圖片,當然也沒辦法
下載。(禁止訪問403)
  要訪問有個很簡單的解決方法,就是登入帳號在訪問圖片,所以我用webbrowser原件
來讓使用者登入,但是webbrowser卻不具備下載串流的功能。
  雖然我有在google找到一個可以讓webbrowser下載圖片的方法,把圖片copy到剪貼簿
然後直接儲存,但是連續下載就一定會使程式當掉
(不是程式碼問題,明顯是web原件的bug)
  注:雖然有些訪問網路的原件具備下載串流的功能,且也能夠登入論壇,但是我不可
能要求使用者要使用程式前先在程式上頭輸入帳號密碼,頂多要求使用者在webbrowser上
頭瀏覽論壇然後登入。
目前我認為有可能的方向有下面幾種,但是都失敗(也許是我方法不對)
讓 webbrowser 的 cookie 傳到其他有辦法下載串流的物件上
讓 webbrowser 使用 ShowSaveAsDialog(右鍵儲存圖片)時,不顯示詢問視窗
覆寫原件讓 webbrowser 具備下載串流的功能。
  google找了幾個月了,都一直沒辦法解決,問了很多大學的老師也都沒得到什麼有用
的相關資訊。就算不是C#也沒關係,還懇求幫忙提供任何可能解決問題的方法或方向
  這算是我大學的專題,其他功能幾乎都完成了,唯獨某些論壇加密過的圖片無法正常
下載,不知道有沒有甚麼方法可以解決?
作者: a926 (Aaron)   2015-02-16 13:23:00
我記得WebClient可以寫認證.不過你要先去看他認證的流程
作者: StupidGaGa (笨嘎嘎)   2015-02-16 16:06:00
請用HttpWebRequest,剩下請自己去挖。
作者: bbcust (bbcust)   2015-02-16 16:38:00
HttpWebRequest
作者: uranusjr (←這人是超級笨蛋)   2015-02-17 03:00:00
.NET 沒研究, 但其他平台確實可以用轉移 cookie 的方式或許可用 http://stackoverflow.com/questions/3382498/
作者: StupidGaGa (笨嘎嘎)   2015-02-17 09:08:00
不可以用HttpWebRequest登入,但可以用WebBrowser?是不可以用HttpWebRequest登入,還是你不會用?不能用HWR登,但可讓user用WB登,是我的邏輯有問題嗎WB的cookie的確是可以複製,不用像上面那樣複雜但上面的網址該提供的關鍵都有提供到
作者: bbcust (bbcust)   2015-02-17 12:12:00
程式不好就把程式學好 別說都是別的東西的問題從你的說法可能連HttpWebRequest怎麼用都不太清楚上面兩位推文說得很清楚了

Links booklink

Contact Us: admin [ a t ] ucptt.com