• 大小: 237KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-18
  • 语言: C#
  • 标签: VS2012  爬虫  C#  

资源简介

多线程爬取网络图片,直接可以运行!

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.Regularexpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace 网络爬虫
{
   public class DownLoad
    {
       private string _rootUrl = null;//存放根URL,所输入的链接
       private string _baseUrl = null;//存放处理后的根URL,所输入的链接
       private string _path = null;//存放所选择保存图片的路径
       private bool _stop = true;//判断是否点击停止下载
       private System.Threading.Timer _checkTimer = null;//一个时间控制器,也是一个线程
       private readonly object _locker = new object();//排他锁,保证请求的完整性
       private int _maxTime = 2 * 60 * 1000;//请求的最大时间
       private static Encoding GB18030 = Encoding.GetEncoding(“GB18030“);//编码格式,GB18030兼容GBK和GB2312
       private Encoding _encoding = GB18030;
       private int _index = 0;//索引标志,用于判断所下载的图片数量
       private bool[] _reqsBusy = null;//判断是否是正在工作,true为正在工作
       private int _reqCount = 4;//初始值,默认是四个线程工作
       private WorkingUnitCollection _workingSignals;//类的对象,用于判断是否工作

       private Dictionary _urlsLoaded = new Dictionary();//数据字典,用于存放未下载的链接
       private Dictionary _urlsUnload = new Dictionary();//数据字典,用于存放已经下载的链接
       public delegate void ContentsSavedHandler(string path string url);//定义一个委托
       public event ContentsSavedHandler ContentsSaved = null;//定义一个事件,用于保存内容时触发
       public delegate void DownloadFinishHandler(int count);
       public event DownloadFinishHandler DownloadFinish = null;//定义一个事件,用于完成下载时触发

       /// 
       /// 定义一个类,初始化请求时所需要的属性
       /// 

       private class RequestState
       {
           /// 
           /// 接收数据包的空间大小
           /// 

           private const int BUFFER_SIZE = 131072;
           /// 
           /// 接收数据包的buffer
           /// 

           private byte[] _data = new byte[BUFFER_SIZE];
           /// 
           /// 存放所有接收到的字符
           /// 

           private StringBuilder _sb = new StringBuilder();
           /// 
           /// 请求
           /// 

           public HttpWebRequest Req { get; private set; }
           /// 
           /// 请求的URL
           /// 

           public string Url { get; private set; }
           /// 
           /// 此次请求的相对深度
           /// 

           public int Depth { get; private set; }
           /// 
           /// 工作实例的编号
           /// 

           public int Index { get; private set; }
           /// 
           /// 接收数据流
           /// 

           public Stream ResStream { get; set; }

           public StringBuilder Html
           {
               get
               {
                   return _sb;
               }
           }

           public byte[] Data
           {

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        187  2016-08-17 10:59  网络爬虫\网络爬虫\App.config

     文件      16361  2016-08-17 13:53  网络爬虫\网络爬虫\bin\...-1.png

     文件     588427  2016-08-17 13:56  网络爬虫\网络爬虫\bin\0.txt

     文件      20400  2016-08-17 13:53  网络爬虫\网络爬虫\bin\1.png

     文件      23552  2016-09-30 10:20  网络爬虫\网络爬虫\bin\Debug\网络爬虫.exe

     文件        187  2016-08-17 10:59  网络爬虫\网络爬虫\bin\Debug\网络爬虫.exe.config

     文件      46592  2016-09-30 10:20  网络爬虫\网络爬虫\bin\Debug\网络爬虫.pdb

     文件      22984  2016-09-30 10:21  网络爬虫\网络爬虫\bin\Debug\网络爬虫.vshost.exe

     文件        187  2016-08-17 10:59  网络爬虫\网络爬虫\bin\Debug\网络爬虫.vshost.exe.config

     文件        490  2012-06-06 02:06  网络爬虫\网络爬虫\bin\Debug\网络爬虫.vshost.exe.manifest

     文件      19803  2016-09-29 19:15  网络爬虫\网络爬虫\DownLoad.cs

     文件       3139  2016-09-30 10:20  网络爬虫\网络爬虫\Form1.cs

     文件       6406  2016-09-30 10:20  网络爬虫\网络爬虫\Form1.Designer.cs

     文件       7267  2016-09-30 10:20  网络爬虫\网络爬虫\Form1.resx

     文件       1278  2016-08-26 12:24  网络爬虫\网络爬虫\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       6891  2016-08-18 19:15  网络爬虫\网络爬虫\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件          0  2016-08-17 10:59  网络爬虫\网络爬虫\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2016-08-17 10:59  网络爬虫\网络爬虫\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2016-08-17 10:59  网络爬虫\网络爬虫\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件        744  2016-09-30 10:21  网络爬虫\网络爬虫\obj\Debug\网络爬虫.csproj.FileListAbsolute.txt

     文件        975  2016-09-30 10:20  网络爬虫\网络爬虫\obj\Debug\网络爬虫.csproj.GenerateResource.Cache

     文件       2143  2016-08-17 12:04  网络爬虫\网络爬虫\obj\Debug\网络爬虫.csprojResolveAssemblyReference.cache

     文件      23552  2016-09-30 10:20  网络爬虫\网络爬虫\obj\Debug\网络爬虫.exe

     文件       1332  2016-09-30 10:20  网络爬虫\网络爬虫\obj\Debug\网络爬虫.Form1.resources

     文件      46592  2016-09-30 10:20  网络爬虫\网络爬虫\obj\Debug\网络爬虫.pdb

     文件        180  2016-08-17 13:53  网络爬虫\网络爬虫\obj\Debug\网络爬虫.Properties.Resources.resources

     文件        524  2016-08-17 10:59  网络爬虫\网络爬虫\Program.cs

     文件       1344  2016-08-17 10:59  网络爬虫\网络爬虫\Properties\AssemblyInfo.cs

     文件       2876  2016-08-17 10:59  网络爬虫\网络爬虫\Properties\Resources.Designer.cs

     文件       5612  2016-08-17 10:59  网络爬虫\网络爬虫\Properties\Resources.resx

............此处省略16个文件信息

评论

共有 条评论