TPL使用异步编程模型(APM)实现简单网页抓取
2013-06-04 12:50
567 查看
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading; using System.Threading.Tasks; namespace fofo.NetSpider { public class SimpleNetSpider { public void Start() { string[] urls = InitUrls(); Task<WebResponse>[] tasks = urls.Select(url => GetResponseAsync(url)).ToArray(); Task.WaitAll(tasks); } private string[] InitUrls() { string[] urls = { "http://www.baidu.com/", "http://www.cnblogs.com", "http://www.csdn.com" }; return urls; } // 启动任务 private Task<WebResponse> GetResponseAsync(string strUrl) { WebRequest webRequest = WebRequest.Create(strUrl); Task<WebResponse> task = Task<WebResponse>.Factory.FromAsync(webRequest.BeginGetResponse, GetResponseAsyncCompleted, webRequest); return task; } // 抓取结束回调函数 private WebResponse GetResponseAsyncCompleted(IAsyncResult result) { WebRequest webRequest = (WebRequest)result.AsyncState; WebResponse response = webRequest.EndGetResponse(result); using (System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream())) { // 具体处理 } return response; } } }
相关文章推荐
- 使用C++实现一套简单的状态机模型——实例
- android 中使用AsyncTask实现简单的异步编程
- 使用C++实现一套简单的状态机模型——实例
- 使用BOOST实现简单的HTTP网页下载
- 使用简单的URDF模型文件结合ros小车实现同步运动
- 使用HtmlAgilityPack实现对网页内容的抓取
- 关于使用阿里云服务调用识别身份证图片、营业执照的信息抓取接口的简单实现
- Python之安装pip&beautiful4&使用beautifulsoup4抓取简单网页
- 使用PHP简单网页抓取和内容分析
- 使用System.Text.RegularExpression中的API实现网页数据的抓取
- 使用HtmlAgilityPack实现简单的博客园主页内容抓取(2014-03-31)
- 使用套接字实现简单TCP服务器客户端模型
- c++ curl 的简单使用和从网页上抓取图片的代码
- 使用C++实现一套简单的状态机模型——实例
- 使用PHP简单网页抓取和内容分析
- c#关于网页内容抓取,简单爬虫的实现。(包括动态,静态的)
- [置顶] 在网页中使用js简单的实现弹出菜单,请高手飘过
- [Java]使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图
- Python实现简单的网页抓取
- 使用flask框架实现一个简单的网页加法运算器