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
运行结果: