正则方式的自动小偷抓网程序
程序员文章站
2024-03-06 14:42:56
有一些瑕疵没时间细化,只是实现了效果,大家看一看这个正则该怎么写好: url:http://news.szhome.com/83642.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文件中,抓录的规则和正则也放在配置文件中,这样就能实现自动抓录。
很短的代码,对这种抓录有兴趣的朋友可以尝试下。下载
上一篇: java随机生成8位数授权码的实例
下一篇: Java使用组件编写窗口实现网络图片显示
推荐阅读