Less.Html 示例三:与 WebClient 的配合使用,以抓取 CSDN 论坛内容为例

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("table.child_forum tr td.title");

foreach (Element i in title)
{
    q(i).find(".forum_link").remove();

    this.WriteLine(i.textContent);
}

上面的代码以抓取 CSDN 的 asp.net 论坛为例,列出了帖子的列表,代码总共就这么几行。

css 选择器参数“table.child_forum tr td.title”就指定了帖子列表的标题,在循环的时候,调用了 remove 方法,这是因为标题里面有一个隐藏的元素,然后用 DOM 标准的 textContent 属性输出元素里面的文本内容就可以了。

本示例代码:GitHub    码云

运行结果:

广州必简信息科技有限公司 版权所有 粤ICP备15047625号-2