作者huevo235 (Huevo)
看板C_Sharp
标题[程式]想要写一个下载网路图片的程式
时间Sun Feb 15 23:57:15 2015
我打算用 C#.net 开发一个能够从网路下载图片的程式
从网路下载图片的方法一般都是用 WebClient 之类的原件,直接访问网址然後把读
取到的串流下载,便可以得到该图片。
但是这却有一个严重的问题,某些网路上的图片是有加密的(像是伊莉),使用者没
有登入帐号,并且阅读过该篇文章,就没办法查看该文章底下的任何图片,当然也没办法
下载。(禁止访问403)
要访问有个很简单的解决方法,就是登入帐号在访问图片,所以我用webbrowser原件
来让使用者登入,但是webbrowser却不具备下载串流的功能。
虽然我有在google找到一个可以让webbrowser下载图片的方法,把图片copy到剪贴簿
然後直接储存,但是连续下载就一定会使程式当掉
(不是程式码问题,明显是web原件的bug)
注:虽然有些访问网路的原件具备下载串流的功能,且也能够登入论坛,但是我不可
能要求使用者要使用程式前先在程式上头输入帐号密码,顶多要求使用者在webbrowser上
头浏览论坛然後登入。
目前我认为有可能的方向有下面几种,但是都失败(也许是我方法不对)
让 webbrowser 的 cookie 传到其他有办法下载串流的物件上
让 webbrowser 使用 ShowSaveAsDialog(右键储存图片)时,不显示询问视窗
覆写原件让 webbrowser 具备下载串流的功能。
google找了几个月了,都一直没办法解决,问了很多大学的老师也都没得到什麽有用
的相关资讯。就算不是C#也没关系,还恳求帮忙提供任何可能解决问题的方法或方向
这算是我大学的专题,其他功能几乎都完成了,唯独某些论坛加密过的图片无法正常
下载,不知道有没有甚麽方法可以解决?
--
┌────────┐ ┌─────┐
│啊蛋捕捉法: │ │○ ○│
│ 喂食苹果面包 │ │ ──┴ │
└───┐┌───┘ └─┐ ┌─┘
││ ┌┐┌─┘ └┐
││ └┘└─┐ ││
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.70.61.74
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1424015839.A.DDE.html
1F:推 a926: 我记得WebClient可以写认证.不过你要先去看他认证的流程 02/16 13:23
2F:→ StupidGaGa: 请用HttpWebRequest,剩下请自己去挖。 02/16 16:06
3F:→ bbcust: HttpWebRequest 02/16 16:38
不可以使用HttpWebRequest来登入帐密然後下载,因为做出来的程式不能直接要求使用者
提供帐密,除非有办法让webbrowser跟HttpWebRequest同步
※ 编辑: huevo235 (61.70.61.74), 02/16/2015 17:44:32
※ 编辑: huevo235 (61.70.61.74), 02/16/2015 17:45:03
4F:→ uranusjr: .NET 没研究, 但其他平台确实可以用转移 cookie 的方式 02/17 03:00
6F:嘘 StupidGaGa: 不可以用HttpWebRequest登入,但可以用WebBrowser? 02/17 09:08
7F:→ StupidGaGa: 是不可以用HttpWebRequest登入,还是你不会用? 02/17 09:09
8F:→ StupidGaGa: 不能用HWR登,但可让user用WB登,是我的逻辑有问题吗 02/17 09:15
9F:→ StupidGaGa: WB的cookie的确是可以复制,不用像上面那样复杂 02/17 09:20
10F:→ StupidGaGa: 但上面的网址该提供的关键都有提供到 02/17 09:22
11F:→ bbcust: 程式不好就把程式学好 别说都是别的东西的问题 02/17 12:12
12F:→ bbcust: 从你的说法可能连HttpWebRequest怎麽用都不太清楚 02/17 12:12
13F:→ bbcust: 上面两位推文说得很清楚了 02/17 12:14