A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© --_— 中级黑马   /  2014-7-24 23:43  /  960 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 --_— 于 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();

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

2 个回复

正序浏览
强势围观学习
回复 使用道具 举报
给你点建议吧:1.调试看看你context 有没有乱码    改动Encoding
2.查看一下网页的原代码,图片路径一些是http:// 开头的,这种不用加你上面的ip就可以直接DownloadFile的
3.尝试一下在得到网页上的图片地址,也得到后缀名。
4.这样弄下来的,好像也得不到你看到的所有图片。
还有就是你会得到一些其他的如.js  .gif的东西
还没有去学后面的视频不知道网页里面的东西。

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

最后一点:视频里的老师说的真的是很详细,多看几篇!

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1 不错的建设性意见

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马