我们第一篇介绍了网站数据采集的基础,那么本篇来介绍铜梁视窗人才招聘、房屋出租等等信息的采集关键:正则表达式
本格案例只是用以描述采用正则表达式提取网页数据的方法,需要网友自己去体会(这么简单完全不用体会了)
private bool GetTLcridit(string page, out string title, out string detail)
{
try
{
string regtitle = "<td height=\"30\" align=\"center\" class=\"bt7\">(?<title>[^<]*)";
MatchCollection ms = Regex.Matches(page, regtitle);
title = ms[0].Groups[1].Value;
string regdetail = "<td class=black id=fontzoom>(?<detail>[^`]*)</td>[\\s]*</tr>[\\s]*<tr align=\"right\">";
MatchCollection ms1 = Regex.Matches(page, regdetail);
detail = ms1[0].Groups[1].Value;
if (title.Length > 1 && detail.Length > 100)
{
return true;
}
return false;
}
catch
{
title = "";
detail = "";
return false;
}
}
以上方法只是把文字区分出来,然后供开发者自行处理。然而如看铜梁视窗是怎么无人化运行的【一】所诉如果正文中有图片怎么办?
没关系,我再提供一个下载图片的方法,以下方法为片段,开发者自行揣摩以下
string regul = "<div class=\"yaowen\">(?<ul>[^`]*)<ul class=\"hd ywbq\">";
string page = PushToWeb(paurl, Encoding.Default);
MatchCollection ms = Regex.Matches(page, regul);
page = ms[0].Groups[1].Value;
string regurl = "<a href=\"(?<url>[^\"]*)\" target=\"_blank\"";
ms = Regex.Matches(page, regurl);
foreach (Match item in ms)
{
string url = "http://www.cqstl.gov.cn" + item.Groups[1].Value;
if (!CheckUrl(url))
{
continue;
}
string temppage = PushToWeb(url, Encoding.Default);
string title = "";
string detail = "";
if (GetCQSTL(temppage, out title, out detail))
{
CMS_Collection co = new CMS_Collection();
co.Title = title;
co.Detail = GetLocalTextImg(detail, title); //此处替换掉了外链图片
co.NewsFrom = url;
co.Bits = 1;
co.CreatedTime = DateTime.Now;
co.TagId = 0;
CMS_CollectionBaseDAL.Create(co);
}
}
登陆铜梁视窗可以看到本项目预览,给我留言,也能提前获得本片续集哟。