图片下载器
一直做 对winform 确实不熟, 但是由于某些人的特殊要求 用winform做一个 图片下载器 so
先获取列表网页的源码
private string GetHtml(string url) { var req = WebRequest.Create(url); var rep = req.GetResponse(); var webstream = rep.GetResponseStream(); StreamReader sr = new StreamReader(webstream); return sr.ReadToEnd(); }
如果是列表页面,就分析网页中所有的详细页面的地址, 再一一访问详细页面
urls = WebParse.Parse_List(html); for (var i = 0; i < imgs.Count; i++) { GetImgs(GetHtml(urls[i])); }
获取详细页面的源码后,筛选掉gif后缀的图片,还有将不符合规定的图片都筛选掉,将剩下的图片地址存在数组中
List<string> imgs = WebParse.Parse_Detal(html);
最后通过图片大小来筛选出最终需要的图片
for (var i = 0; i < imgs.Count; i++) { Image image = Image.FromStream(WebRequest.Create(@imgs[i]).GetResponse().GetResponseStream()); if (image.Width <= minWidth || image.Height <= minHeght) return; image.Save(file + count.ToString() + ".jpg"); image.Dispose(); count++; }
当然本人不知道有没有更简便的方法 如果有请指出
后来的一些修改
选择文件夹的问题 之前一直没有找到控件 (⊙﹏⊙b汗) 所以用的是TextBox 手动输入的文件夹
1 private void SaveImg_Click(object sender, EventArgs e)
2 {
3 var openFile = new FolderBrowserDialog();
4 if (openFile.ShowDialog() == DialogResult.OK)
5 {
6 SaveImg.Text = openFile.SelectedPath + "\\";
7 }
8
9 //下面是选择文件的方式
10 //string resultFile = "";
11 //OpenFileDialog openFileDialog1 = new OpenFileDialog();
12 //openFileDialog1.InitialDirectory = "D:\\Patch";
13 //openFileDialog1.Filter = "All files (*.*)|*.*|txt files (*.txt)|*.txt";
14 //openFileDialog1.FilterIndex = 2;
15 //openFileDialog1.RestoreDirectory = true;
16 //if (openFileDialog1.ShowDialog() == DialogResult.OK)
17 }