/// <summary> /// 异步抓取页面HTML代码 /// </summary> /// <param name="webClient">Web客户端</param> /// <param name="onCrawlData">抓取回调事件</param> /// <param name="TmphRequest">URI请求信息</param> public static void Crawl(TmphWebClient webClient, Action<byte[]> onCrawlData, TmphRequest TmphRequest) { TmphDataCrawler TmphDataCrawler = TmphTypePool<TmphDataCrawler>.Pop(); if (TmphDataCrawler == null) { try { TmphDataCrawler = new TmphDataCrawler(); } catch (Exception error) { TmphLog.Default.Add(error, null, false); onCrawlData(null); return; } } TmphDataCrawler.webClient = webClient; TmphDataCrawler.onCrawlData = onCrawlData; TmphDataCrawler.TmphRequest = TmphRequest; TmphDataCrawler.crawl(); }
/// <summary> /// 抓取回调 /// </summary> /// <param name="data">抓取数据</param> private void onCrawl(byte[] data) { try { onCrawlData(data); } finally { webClient = null; onCrawlData = null; TmphRequest.Clear(); TmphTypePool<TmphDataCrawler>.Push(this); } }