zoukankan      html  css  js  c++  java
  • 多线程应用一

    1.图片下载

      1  public class Program
      2     {
      3         static void Main(string[] args)
      4         {
      5             string[] str = { "model", "sexy", "belle", "stars" };
      6             for (int url = 0; url < str.Length; url++)
      7             {
      8                 Thread thread = new Thread(DownLoad);
      9 
     10                 thread.Start(str[url]);
     11             }
     12             Console.Read();
     13         }
     14 
     15         public static void DownLoad(object category)
     16         {
     17             string url = string.Empty;
     18 
     19             for (int purl = 9014; purl > 10; purl--)
     20             {
     21                 for (int pageSize = 0; pageSize < 20; pageSize++)
     22                 {
     23                     try
     24                     {
     25                         if (pageSize == 0)
     26                             url = "http://www.mm8mm8.com/" + category + "/" + purl + ".html";
     27                         else
     28                             url = "http://www.mm8mm8.com/" + category + "/" + purl + "_" + pageSize + ".html";
     29 
     30                         //创建http链接
     31                         var request = (HttpWebRequest)WebRequest.Create(url);
     32 
     33                         request.Timeout = 1000 * 5;    //5s过期
     34 
     35                         var response = (HttpWebResponse)request.GetResponse();
     36 
     37                         Stream stream = response.GetResponseStream();
     38 
     39                         StreamReader sr = new StreamReader(stream);
     40 
     41                         string content = sr.ReadToEnd();
     42 
     43                         var list = GetHtmlImageUrlList(content);
     44 
     45                         WebClient client = new WebClient();
     46 
     47 
     48                         var directoryName = @"C:down";
     49 
     50                         if (!Directory.Exists(directoryName))
     51                             Directory.CreateDirectory(directoryName);
     52 
     53                         var fileName = string.Empty;
     54 
     55                         if (list.Count == 0)
     56                         {
     57                             Console.WriteLine("时间:" + DateTime.Now + " 当前网址:" + url + "  未发现图片");
     58                             break;
     59                         }
     60 
     61                         try
     62                         {
     63 
     64                             fileName = category + "_" + purl + "_" + (pageSize + 1) + ".jpg";
     65 
     66                             var localFile = directoryName + fileName;
     67 
     68                             var imageRequest = (HttpWebRequest)WebRequest.Create(list[0]);
     69 
     70                             imageRequest.Timeout = 1000 * 5;  //5s 超时
     71 
     72                             var imageResponse = (HttpWebResponse)imageRequest.GetResponse();
     73 
     74                             var s = imageResponse.GetResponseStream();
     75 
     76                             Image image = Image.FromStream(s);
     77 
     78                             image.Save(localFile);
     79 
     80                             image.Dispose();
     81 
     82                             Console.WriteLine("时间:" + DateTime.Now + "  图片:" + fileName + " 已经下载   存入磁盘位置:" + localFile);
     83 
     84                         }
     85                         catch (Exception e)
     86                         {
     87                             Console.WriteLine("时间:" + DateTime.Now + " 当前图片:" + fileName + " 错误信息:" + e.Message);
     88                             continue;
     89                         }
     90                     }
     91                     catch (Exception ex)
     92                     {
     93                         Console.WriteLine("时间:" + DateTime.Now + " 当前网址:" + url + " 错误信息:" + ex.Message);
     94                     }
     95                 }
     96             }
     97         }
     98 
     99         /// <summary> 
    100         /// 取得HTML中所有图片的 URL。 
    101         /// </summary> 
    102         /// <param name="sHtmlText">HTML代码</param> 
    103         /// <returns>图片的URL列表</returns> 
    104         public static List<string> GetHtmlImageUrlList(string sHtmlText)
    105         {
    106             // 定义正则表达式用来匹配 img 标签 
    107             Regex regImg = new Regex(@"<img[^<>]*?src[s	
    ]*=[s	
    ]*[""']?[s	
    ]*(?<imgUrl>[^s	
    ""'<>]*)[^<>]*?/?[s	
    ]*>", RegexOptions.IgnoreCase);
    108 
    109             // 搜索匹配的字符串 
    110             MatchCollection matches = regImg.Matches(sHtmlText);
    111 
    112             List<string> sUrlList = new List<string>();
    113 
    114             // 取得匹配项列表 
    115             foreach (Match match in matches)
    116                 sUrlList.Add(match.Groups["imgUrl"].Value);
    117             return sUrlList;
    118         }
    119     }
    View Code
  • 相关阅读:
    BZOJ4987 Tree
    BZOJ4817 [SDOI2017]树点涂色
    BZOJ4811: [YNOI2017] 由乃的OJ
    BSGS算法
    codeforces914G Sum the Fibonacci
    NOI2018网络同步赛游记
    雅礼集训 2017 Day2 水箱 可并堆
    CTSC&APIO2018游记
    51Nod 有限背包计数问题 题解报告
    CTSC2016&&APIO2016游记
  • 原文地址:https://www.cnblogs.com/q975261413/p/5287143.html
Copyright © 2011-2022 走看看