黑马程序员技术交流社区

标题: 正则表达式下载图片的问题 [打印本页]

作者: --_—    时间: 2014-7-24 23:43
标题: 正则表达式下载图片的问题
本帖最后由 --_— 于 2014-7-27 01:14 编辑

用正则表达式,在百度图库下载图片到本机。整了1小时了,找不出错在哪,要么不能匹配,要么匹配后得不了文件(图片)类型,现贴出代码,求指点。

WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;

string ip = @"http://image.baidu.com/channel/funnyfm=index#%E6%90%9E%E7%AC%91&%E8%84%91%E6%AE%8B%E5%AF%B9%E8%AF%9D&0&0";
            string regex = @"src=""([^>]+)""";//试过好几种,不一一贴出了
            string context = wc.DownloadString(ip);
            MatchCollection mc = Regex.Matches(context, regex);
            if (!Directory.Exists(@"C:\Users\Administrator\Desktop\1"))
                {
                    Directory.CreateDirectory(@"C:\Users\Administrator\Desktop\1");
                }
            int i=0;
              foreach (Match m in mc)
              {
                  if (m.Success)
                  {
                      string path = ip + "/" + m.Groups[1].Value;
                      //网址
                      string name = Path.Combine(@"C:\Users\Administrator\Desktop\1",(i++).ToString() );//加不上(得不到Path貌似不能用)图片类型
                      //硬盘路径
                      wc.DownloadFile(path, name);
                  }
              }
              Console.ReadKey();


作者: mouxingyu    时间: 2014-7-25 19:01
给你点建议吧:1.调试看看你context 有没有乱码    改动Encoding
2.查看一下网页的原代码,图片路径一些是http:// 开头的,这种不用加你上面的ip就可以直接DownloadFile的
3.尝试一下在得到网页上的图片地址,也得到后缀名。
4.这样弄下来的,好像也得不到你看到的所有图片。
还有就是你会得到一些其他的如.js  .gif的东西
还没有去学后面的视频不知道网页里面的东西。

只知道这么多了  希望对你能有帮助。

最后一点:视频里的老师说的真的是很详细,多看几篇!
作者: Kevion小远    时间: 2014-7-25 21:22
强势围观学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2