正则方式的自动小偷抓网程序
更新时间:2011年11月21日 19:01:37 作者:
公司里面有许多数据没人去录入,做一个抓取网页的程序,以前做CMS系统的时候涉及过,不过这次的处理HTML上和以前做了些区别
有一些瑕疵没时间细化,只是实现了效果,大家看一看这个正则该怎么写好:
URL:http://news.szhome.com/83642.html
内容:
object></div></div>
</div>
<div class="share"><div class="linkshare" style="right: 0">
这两个标记之间的代码。END标记的问题解决了,但是郁闷的是START截取的标记因为第二个DIV和第三个中间有换行,我无语了不知道怎么处理这个正则。
而且郁闷的是有多处有这种重复型标记,对正则不太熟悉,我的解决方法如下:
MatchCollection mc = Regex.Matches(ghoPage.Trim(), @"(?<=<div class=['""]txtmsg['""]>)[\s\S]*?(?=<div class=['""]share['""]><div class=)", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
foreach (Match mm in mc)
{
sb.Append(mc[0].Value.Substring(1933, mc[0].Value.Length - 1933));
}
我算出截取出来多处两个FLASH广告DIV的长度是1933,然后处理字符串截取后得到我想要的文本,这样做的劣势就是万一该站改变了两个FLASH广告DIV的长度我获取的数据就不是完整的呢,有兴趣的研究下,看看换行的DIV正则问题怎么处理。
里面用到了自己写的一个BUTTON控件,可以在点击后禁止重复点击,然后就是一些判断,在思路上蛮不错,可以做到一直抓取,因为不经常用就没做成WINDOWS服务类型,这样的程序可以做成WINDOWS服务,把规则写在INI文件中,抓录的规则和正则也放在配置文件中,这样就能实现自动抓录。
很短的代码,对这种抓录有兴趣的朋友可以尝试下。下载
URL:http://news.szhome.com/83642.html
内容:
复制代码 代码如下:
object></div></div>
</div>
<div class="share"><div class="linkshare" style="right: 0">
这两个标记之间的代码。END标记的问题解决了,但是郁闷的是START截取的标记因为第二个DIV和第三个中间有换行,我无语了不知道怎么处理这个正则。
而且郁闷的是有多处有这种重复型标记,对正则不太熟悉,我的解决方法如下:
复制代码 代码如下:
MatchCollection mc = Regex.Matches(ghoPage.Trim(), @"(?<=<div class=['""]txtmsg['""]>)[\s\S]*?(?=<div class=['""]share['""]><div class=)", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
foreach (Match mm in mc)
{
sb.Append(mc[0].Value.Substring(1933, mc[0].Value.Length - 1933));
}
我算出截取出来多处两个FLASH广告DIV的长度是1933,然后处理字符串截取后得到我想要的文本,这样做的劣势就是万一该站改变了两个FLASH广告DIV的长度我获取的数据就不是完整的呢,有兴趣的研究下,看看换行的DIV正则问题怎么处理。
里面用到了自己写的一个BUTTON控件,可以在点击后禁止重复点击,然后就是一些判断,在思路上蛮不错,可以做到一直抓取,因为不经常用就没做成WINDOWS服务类型,这样的程序可以做成WINDOWS服务,把规则写在INI文件中,抓录的规则和正则也放在配置文件中,这样就能实现自动抓录。
很短的代码,对这种抓录有兴趣的朋友可以尝试下。下载
相关文章
asp.net中的“按需打印”(打印你需要打印的部分) 实现代码
有时我们需要对asp.net网页中某些特定部分进行打印,很多人采用CSS样式或特定的打印控件来解决网页定制打印功能。这里采用Javascript样式替换方式进行打印,使网页显示与打印效果相分离。2013-06-06
12306动态验证码启发之ASP.NET实现动态GIF验证码(附源码)
这篇文章主要介绍了受到12306动态验证码启发,实现ASP.NET动态GIF验证码,需要的朋友可以参考下2015-08-08
Win7安装Visual Studio 2015失败的解决方法
这篇文章主要为大家详细介绍了Win7安装Visual Studio 2015失败的解决方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-03-03
如何在Asp.Net Core MVC中处理null值的实现
这篇文章主要介绍了如何在Asp.Net Core MVC中处理null值的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
sql server中批量插入与更新两种解决方案分享(asp.net)
xml和表值函数的相对复杂些这里简单贴一下bcp和SqlDataAdapter进行批量跟新插入方法,未经整理还望见谅2012-05-05


最新评论