亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? spider.cs

?? 爬蟲程序用于查詢所以網(wǎng)絡(luò)的信息和收藏夾
?? CS
字號:
using System;
using System.Collections;
using System.Net;
using System.IO;
using System.Threading;

namespace Spider
{
	/// <summary>
	/// The main class for the spider. This spider can be used with the 
	/// SpiderForm form that has been provided. The spider is completely 
	/// selfcontained. If you would like to use the spider with your own
	/// application just remove the references to m_spiderForm from this file.
	/// 
	/// The files needed for the spider are:
	/// 
	/// Attribute.cs - Used by the HTML parser
	/// AttributeList.cs - Used by the HTML parser
	/// DocumentWorker - Used to "thread" the spider
	/// Done.cs - Allows the spider to know when it is done
	/// Parse.cs - Used by the HTML parser
	/// ParseHTML.cs - The HTML parser
	/// Spider.cs - This file
	/// SpiderForm.cs - Demo of how to use the spider
	/// 
	/// This spider is copyright 2003 by Jeff Heaton. However, it is
	/// released under a Limited GNU Public License (LGPL). You may 
	/// use it freely in your own programs. For the latest version visit
	/// http://www.jeffheaton.com.
	///
	/// </summary>
	public class Spider
	{
		/// <summary>
		/// The URL's that have already been processed.
		/// </summary>
		private Hashtable m_already;

		/// <summary>
		/// URL's that are waiting to be processed.
		/// </summary>
		private Queue m_workload;

		/// <summary>
		/// The first URL to spider. All other URL's must have the
		/// same hostname as this URL. 
		/// </summary>
		private Uri m_base;

		/// <summary>
		/// The directory to save the spider output to.
		/// </summary>
		private string m_outputPath;

		/// <summary>
		/// The form that the spider will report its 
		/// progress to.
		/// </summary>
		private SpiderForm m_spiderForm;

		/// <summary>
		/// How many URL's has the spider processed.
		/// </summary>
		private int m_urlCount = 0;

		/// <summary>
		/// When did the spider start working
		/// </summary>
		private long m_startTime = 0;

		/// <summary>
		/// Used to keep track of when the spider might be done.
		/// </summary>
		private Done m_done = new Done();		

		/// <summary>
		/// Used to tell the spider to quit.
		/// </summary>
		private bool m_quit;

		/// <summary>
		/// The status for each URL that was processed.
		/// </summary>
		enum Status { STATUS_FAILED, STATUS_SUCCESS, STATUS_QUEUED };


		/// <summary>
		/// The constructor
		/// </summary>
		public Spider()
		{
			reset();
		}

		/// <summary>
		/// Call to reset from a previous run of the spider
		/// </summary>
		public void reset()
		{
			m_already = new Hashtable();
			m_workload = new Queue();
			m_quit = false;
		}

		/// <summary>
		/// Add the specified URL to the list of URI's to spider.
		/// This is usually only used by the spider, itself, as
		/// new URL's are found.
		/// </summary>
		/// <param name="uri">The URI to add</param>
		public void addURI(Uri uri)
		{
			Monitor.Enter(this);
			if( !m_already.Contains(uri) )
			{
				m_already.Add(uri,Status.STATUS_QUEUED);
				m_workload.Enqueue(uri);
			}
			Monitor.Pulse(this);
			Monitor.Exit(this);
		}

		/// <summary>
		/// The URI that is to be spidered
		/// </summary>
		public Uri BaseURI 
		{
			get
			{
				return m_base;
			}

			set
			{
				m_base = value;
			}
		}

		/// <summary>
		/// The local directory to save the spidered files to
		/// </summary>
		public string OutputPath
		{
			get
			{
				return m_outputPath;
			}

			set
			{
				m_outputPath = value;
			}
		}

		/// <summary>
		/// The object that the spider reports its
		/// results to.
		/// </summary>
		public SpiderForm ReportTo
		{
			get
			{
				return m_spiderForm;
			}

			set
			{
				m_spiderForm = value;
			}
		}

		/// <summary>
		/// Set to true to request the spider to quit.
		/// </summary>
		public bool Quit
		{
			get
			{
				return m_quit;
			}

			set
			{
				m_quit = value;
			}
		}

		/// <summary>
		/// Used to determine if the spider is done, 
		/// this object is usually only used internally
		/// by the spider.
		/// </summary>
		public Done SpiderDone
		{
			get
			{
				return m_done;
			}

		}

		/// <summary>
		/// Called by the worker threads to obtain a URL to
		/// to process.
		/// </summary>
		/// <returns>The next URL to process.</returns>
		public Uri ObtainWork()
		{
			Monitor.Enter(this);
			while(m_workload.Count<1)
			{
				Monitor.Wait(this);
			}


			Uri next = (Uri)m_workload.Dequeue();
			if(m_spiderForm!=null)
			{
				m_spiderForm.SetLastURL(next.ToString());
				m_spiderForm.SetProcessedCount(""+(m_urlCount++));
				long etime = (System.DateTime.Now.Ticks-m_startTime)/10000000L;
				long urls = (etime==0)?0:m_urlCount/etime;
				m_spiderForm.SetElapsedTime( etime/60 + " minutes (" + urls +" urls/sec)" );
			}

			Monitor.Exit(this);
			return next;
		}

		/// <summary>
		/// Start the spider.
		/// </summary>
		/// <param name="baseURI">The base URI to spider</param>
		/// <param name="threads">The number of threads to use</param>
		public void Start(Uri baseURI,int threads)
		{
			// init the spider
			m_quit = false;

			m_base = baseURI;
			addURI(m_base);
			m_startTime = System.DateTime.Now.Ticks;;
			m_done.Reset();
		
			// startup the threads

			for(int i=1;i<threads;i++)
			{				
				DocumentWorker worker = new DocumentWorker(this);
				worker.Number = i;
				worker.start();
			}

			// now wait to be done

			m_done.WaitBegin();
			m_done.WaitDone();			
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜精品一区二区三区他趣| 九色综合国产一区二区三区| 国产网红主播福利一区二区| 欧美videos中文字幕| 91精品久久久久久久久99蜜臂| 欧美日韩精品一区二区三区 | 精品亚洲成av人在线观看| 亚洲成人激情社区| 日韩精品一级中文字幕精品视频免费观看 | 久久亚洲精华国产精华液 | 亚洲香蕉伊在人在线观| 亚洲色图另类专区| 亚洲美女区一区| 亚洲最大成人网4388xx| 亚洲一区二区三区视频在线| 亚洲国产精品嫩草影院| 日韩电影网1区2区| 麻豆极品一区二区三区| 国内精品久久久久影院薰衣草| 精彩视频一区二区| 成人国产一区二区三区精品| 99免费精品在线| 欧美丝袜丝nylons| 日韩一区二区三区在线观看| 久久亚区不卡日本| 中文字幕一区二区三区在线观看| 亚洲人成网站精品片在线观看 | 粉嫩aⅴ一区二区三区四区| av激情亚洲男人天堂| 色综合咪咪久久| 欧美日韩电影在线| 精品动漫一区二区三区在线观看| 久久久久久**毛片大全| 亚洲欧洲韩国日本视频| 午夜久久久久久电影| 久久99久久99| 成人av在线资源网站| 欧美日韩在线一区二区| 精品电影一区二区三区| 日韩毛片一二三区| 日产国产高清一区二区三区 | 久久精品一区八戒影视| 亚洲色图视频网| 另类小说一区二区三区| 成人av免费在线观看| 欧美日韩精品一区二区在线播放| 久久日一线二线三线suv| 最新欧美精品一区二区三区| 日韩制服丝袜av| 成人午夜免费电影| 欧美女孩性生活视频| 国产精品天干天干在线综合| 午夜免费欧美电影| 不卡的av电影| 日韩欧美一级精品久久| 亚洲视频你懂的| 精品制服美女丁香| 色婷婷亚洲精品| 久久久国产精品不卡| 亚洲午夜羞羞片| 国产成人aaa| 91精品国产综合久久精品麻豆| 日本一区二区三区高清不卡| 天堂一区二区在线| 91色视频在线| 久久久精品黄色| 裸体歌舞表演一区二区| 91国内精品野花午夜精品| 久久综合九色欧美综合狠狠| 亚洲午夜国产一区99re久久| 懂色av一区二区三区免费观看| 日韩一卡二卡三卡国产欧美| 一区二区视频免费在线观看| 国产91精品久久久久久久网曝门| 91精品福利在线一区二区三区| 亚洲日本中文字幕区| 国产精品18久久久久久久久久久久| 欧美日韩国产一级片| 最新高清无码专区| 国产成+人+日韩+欧美+亚洲 | 蜜桃av噜噜一区| 欧美性猛交一区二区三区精品| 亚洲国产高清aⅴ视频| 久久er99精品| 日韩欧美激情四射| 天天综合网 天天综合色| 日本丶国产丶欧美色综合| 日本一区二区高清| 国产99精品国产| 久久久激情视频| 国产乱色国产精品免费视频| 日韩一级黄色片| 肉肉av福利一精品导航| 欧美三级电影一区| 亚洲自拍偷拍图区| 日本道色综合久久| 成人欧美一区二区三区| 成人免费av资源| 国产精品日日摸夜夜摸av| 国产成人精品免费网站| 久久久久久久久一| 国产精品18久久久久久久网站| 久久久亚洲欧洲日产国码αv| 日韩福利视频导航| 日韩视频免费直播| 激情综合一区二区三区| 久久久噜噜噜久久人人看| 精品一区二区三区香蕉蜜桃| 日韩欧美国产电影| 黄一区二区三区| 久久久精品人体av艺术| 懂色av一区二区三区免费观看| 国产精品污网站| 色天天综合久久久久综合片| 亚洲乱码国产乱码精品精98午夜 | 国模冰冰炮一区二区| 久久综合久久99| 国产河南妇女毛片精品久久久| 久久免费电影网| 99国产精品久久久久久久久久 | 中文字幕一区二区日韩精品绯色| 丁香啪啪综合成人亚洲小说 | 亚洲主播在线观看| 欧美丝袜第三区| 久久69国产一区二区蜜臀| www亚洲一区| 成人黄色小视频在线观看| 亚洲黄色性网站| 欧美乱熟臀69xxxxxx| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产欧美视频一区二区三区| 成人黄色在线网站| 一区二区三区不卡视频在线观看| 欧美日韩久久一区| 激情国产一区二区 | 东方欧美亚洲色图在线| 亚洲欧美日韩电影| 欧美一区三区二区| 国产99久久久国产精品潘金| 亚洲永久免费视频| 日韩精品一区二区三区视频在线观看 | 中文字幕中文字幕在线一区| 91麻豆国产福利在线观看| 偷拍一区二区三区四区| 欧美精品一区二区三区在线 | 久久午夜电影网| 一本到不卡精品视频在线观看| 日韩黄色一级片| 国产精品久久777777| 欧美日本在线播放| 国产suv精品一区二区883| 性久久久久久久久久久久| 久久久国际精品| 欧美人与禽zozo性伦| 国产福利一区二区三区视频 | 日韩精品成人一区二区在线| 国产情人综合久久777777| 欧美性大战久久| 国产91精品一区二区麻豆网站| 污片在线观看一区二区| 亚洲国产精品成人综合色在线婷婷 | 成人少妇影院yyyy| 天天亚洲美女在线视频| 国产片一区二区三区| 欧美欧美欧美欧美| 99久久精品国产一区二区三区 | 欧美日韩亚洲综合| 国产乱子伦视频一区二区三区 | 国产福利一区二区三区视频| 亚洲va国产va欧美va观看| 中文字幕精品一区二区精品绿巨人 | 中文字幕日韩一区| 精品日韩成人av| 欧美视频你懂的| 成人av在线一区二区三区| 黄色精品一二区| 日韩1区2区日韩1区2区| 一区二区三区蜜桃| 国产精品久久久久久久久免费桃花 | 看电视剧不卡顿的网站| 亚洲激情校园春色| 中文无字幕一区二区三区| 欧美成人一区二区| 欧美视频精品在线观看| 99国产精品久久久久久久久久久| 国产精品一区久久久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲成人高清在线| 亚洲精品国产a久久久久久| 中文字幕乱码久久午夜不卡| 精品国产一区二区三区久久久蜜月 | 亚洲第一av色| 亚洲另类中文字| 国产精品久久精品日日| 久久久不卡网国产精品一区| 精品va天堂亚洲国产| 日韩欧美一级二级| 欧美一级专区免费大片| 欧美一二三区在线观看| 69av一区二区三区|