WebClient 是做内容采集经常会用到的类,提供了方便的获取网页内容的方法。但是获取到的是字符串类型,如果使用 Less.Html 解析成节点树,可以大大的加快开发的速度:
WebClient client = new WebClient(); client.Encoding = Encoding.UTF8; string aspDotNet = client.DownloadString( "http://bbs.csdn.net/forums/ASPDotNET"); var q = HtmlParser.Query(aspDotNet); var title = q(".forums_title"); foreach (Element i in title) { this.WriteLine(i.textContent); }
上面的代码以抓取 CSDN 的 asp.net 论坛为例,列出了帖子的列表,代码总共就这么几行。
css 选择器参数“.forums_title”就指定了帖子列表的标题,然后用 DOM 标准的 textContent 属性输出元素里面的文本内容就可以了。
本示例代码:GitHub
运行结果: