下载网页中的图片到本地

简单的一个下载如下 :

         string url = "http://avatar.csdn.net/A/2/6/2_yefengzhixia.jpg";
            string filepath = "D:\\pic.jpg";
            WebClient mywebclient = new WebClient();
            mywebclient.DownloadFile(url, filepath);
            MessageBox.Show("OK");    

下面演示一个从网站中下载所有图片到本地:

1、界面设计:

<Grid>
        <DockPanel>

            <GroupBox x:Name="groupBox" Header="图片网址" DockPanel.Dock="Top">
                <StackPanel>

                <StackPanel Orientation="Horizontal" Margin="10" >
                    <Button x:Name="button" Content="查看网页中的图片" Margin="5" Click="button_Click"  />
                        <TextBlock Text="网址:"></TextBlock>
                    <TextBox x:Name="textBox" Text="http://www.tooopen.com/img/87.aspx" HorizontalAlignment="Left" MaxWidth="600" TextWrapping="Wrap" MinWidth="300"  VerticalAlignment="Top"  />
                </StackPanel>
                    <TextBlock Text="下载信息:"></TextBlock>
                    <TextBlock Margin="10" Name="txtcount" Text="{Binding downCount}">
                    </TextBlock>
                    <TextBlock Name="total"></TextBlock>
                    <Button Click="Button_Click_1" Content="打开下载图片文件夹"></Button>
                </StackPanel>
            </GroupBox>
                <ListBox Name="lb"></ListBox>
        </DockPanel>

    </Grid>

2、代码

 public partial class MainWindow : Window,INotifyPropertyChanged
    {
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;
        }

        private int c;

        public int downCount
        {
            get { return c; }
            set { c = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("downCount"));
            }
        }

        public ObservableCollection<string> list = new ObservableCollection<string>();

        public event PropertyChangedEventHandler PropertyChanged;

        private async void button_Click(object sender, RoutedEventArgs e)
        {

            var path = textBox.Text;
            if (string.IsNullOrWhiteSpace(path))
            {
                textBox.Focus();
                MessageBox.Show("请输入网站地址");
                return;
            }
            HttpClient client = new HttpClient();
            var str = await client.GetStringAsync(new Uri(path));

            Regex rg = new Regex("<img.+?src=\"(.+?)\"");
            var mth = rg.Matches(str);

            WebClient wc = null;
            int i = 0;
            total.Text="共有图片:"+mth.Count;

            Action<string> listboxAddImgName = x => {
                lb.Items.Add(x);

            };
            foreach (Match item in mth)
            {
                i++;

                var img = item.Groups[1].Value;
                string Ex = img.Substring(img.LastIndexOf("."));
                string imgName = i + Ex;
                Task.Run(() =>
                {
                    wc = new WebClient();
                    wc.DownloadFile(img, "DownLoadImages/" + imgName);
                    return imgName;
                }).ContinueWith(r=> {
                    downCount +=1;
                    Dispatcher.Invoke(listboxAddImgName,r.Result);
                });

            }

        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            System.Diagnostics.Process.Start(Environment.CurrentDirectory+"/DownLoadImages");
        }
    }

时间: 2024-10-20 11:31:04

下载网页中的图片到本地的相关文章

Python抓取网页中的图片到本地

今天在网上找了个从网页中通过图片URL,抓取图片并保存到本地的例子: 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # Author: xixihuang 5 # Date : 2016/08/28 10:12 AM 6 # Desc: 抓取网页,获取图片URL,抓取图片内容并保存到本地. 7 8 import os 9 import uuid 10 import urllib2 11 import cookielib 12 '''获取

爬取网页中的图片到本地

library(rvest) library(downloader) url <- 'http://www.nipic.com/show/15419595.html' web <- read_html(url) link <- web %>% html_nodes("img") %>% html_attr("src") for(i in 1:length(link)){ download(link[i],paste("D://

C# 网络编程之webBrowser获取网页url和下载网页中图片

该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试下载网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url.下载图片三个功能.而且很清晰的解析了每一步都是以前一步为基础实现的. 一.界面设计 界面设计如下图所示,添加控件如图,设置webBrowser1其Anchor属性为Top.Bottom.Left.Right,实现对话框缩放;设置groupBox1其Dock(定义要绑到容器控件的边框)为Buttom,实

asp网络编程:用ASP编写下载网页中所有资源的程序

看过一篇关于下载网页中图片的文章,它只能下载以http头的图片,我做了些改进,可以下载网页中的所有连接资源,并按照网页中的目录结构建立本地目录,存放资源. download.asp?url=你要下载的网页 download.asp代码如下: <% Server.ScriptTimeout=9999 function SaveToFile(from,tofile) on error resume next dim geturl,objStream,imgs geturl=trim(from) My

imagesLoaded – 检测网页中的图片是否加载

imagesLoaded 是一个用于来检测网页中的图片是否载入完成的 JavaScript 工具库.支持回调的获取图片加载的进度,还可以绑定自定义事件.可以结合 jQuery.RequireJS 使用. 插件下载     效果演示 使用示例: // element imagesLoaded( document.querySelector('#container'), function( instance ) { console.log('all images are loaded'); });

python 批量下载网页里的图片

python 3.* import requestsimport sys,re#设置提取图片url 的正则表达式imgre = re.compile(r"<img id=\"imgis\" src='(.*?)'")#存放找到的 图片url的列表all_img_urls = []#图片下载后存放位置save_path = r'/root'#获取指定网页中的图片urldef get_img_url(tmpurl,tmpre,allimgurl,timeout=1

网页中的图片查看器viewjs使用

需求分析: 对于网页中的图片进行连续放大(便于用户清晰查看内容).缩小,旋转等操作,可以使用viewjs图片查看器插件实现. viewjs官方网址:https://github.com/fengyuanchen/viewerjs 具体使用方法请参照官网说明. 下面做2个简单的示例: 1.示例一:单一图片 1 <!DOCTYPE html> 2 <html lang="zh"> 3 4 <head> 5 <meta charset="U

C#加载网页中的图片

需求:在winform程序中加载网页中的验证码 1.打开网页,获取到网页中img的src属性,得到的是图片的base64编码字符串: string base64string= webBrowser1.Document.All["yzm_img"].GetAttribute("src"); 2.将字符串转换为图片: byte[] b = Convert.FromBase64String(base64string); MemoryStream ms = new Memo

java版模拟浏览器下载百度动漫图片到本地。

1 package javaNet.Instance.ImageDownload; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.InputStreamReader; 9 import java.net.M