下载网页图片失败普通下载无效

.Net技术 码拜 8年前 (2016-05-23) 791次浏览
一般网页的html代码的图片是这样的

<img src="http://www.news.cn/2015/xilan/images/twoCode_xuanwen.jpg" />

这个代码使用下面的方式就能实现,

WebClient webClient = new WebClient();
webClient.DownloadFile(picUrl, path + fileName);

但是如下这种方式:

<a href="http://muramasa.jp.net/?plugin=attach&amp;pcmd=open&amp;file=%E5%AE%AE%E7%94%B0%E5%85%89%E6%AC%A1hr003.jpg&amp;refer=%E7%94%BB%E5%83%8F%E5%80%89%E5%BA%AB%20%E8%89%B6HR" title="2013/10/27 22:15:00 99.8KB">宮田光次hr003.jpg</a>

这种链接的图片就无法下载,于是将全部的amp;去掉,得到如下
http://muramasa.jp.net/?plugin=attach&pcmd=open&file=%E5%AE%AE%E7%94%B0%E5%85%89%E6%AC%A1hr003.jpg&refer=%E7%94%BB%E5%83%8F%E5%80%89%E5%BA%AB%20%E8%89%B6HR
这个链接在浏览器中,是可以打开的,有一张图片,这个图片的src就是上一行的链接。应该是动态的数据流生成的。但是这个连接无法使用最上面的方式下载,
使用下面的代码也只是返回了一个乱七八糟的html文档

WebRequest quest = WebRequest.Create(url);
 WebResponse response = quest.GetResponse();
Stream datastream = response.GetResponseStream();
StreamReader reader = new StreamReader(datastream, Encoding.UTF8);
string htmlStr = reader.ReadToEnd();

有没有高手知道怎么搞?求赐教

解决方案

40

可以下载的没有问题,本人已经试过了。

<a id="a_id" runat="server" href="http://muramasa.jp.net/?plugin=attach&amp;pcmd=open&amp;file=%E5%AE%AE%E7%94%B0%E5%85%89%E6%AC%A1hr003.jpg&amp;refer=%E7%94%BB%E5%83%8F%E5%80%89%E5%BA%AB%20%E8%89%B6HR" title="2013/10/27 22:15:00 99.8KB">宮田光次hr003.jpg</a>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
protected void Button1_Click(object sender, EventArgs e)
        {
            string str = a_id.HRef;
            WebClient webClient = new WebClient();
            webClient.DownloadFile(str, "D:\宮田光次hr003.jpg"); 
        }

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明下载网页图片失败普通下载无效
喜欢 (0)
[1034331897@qq.com]
分享 (0)